From c97fffdc594d2fff05621565e2f6501234b1ba01 Mon Sep 17 00:00:00 2001 From: Angad Kambli Date: Wed, 17 Feb 2021 20:00:03 +0530 Subject: [PATCH] add null check in _update_particle_data_buffer() add check to see if p_order is in range for CPUParticles3D::set_draw_order' --- scene/3d/cpu_particles_3d.cpp | 2 ++ scene/3d/cpu_particles_3d.h | 1 + 2 files changed, 3 insertions(+) diff --git a/scene/3d/cpu_particles_3d.cpp b/scene/3d/cpu_particles_3d.cpp index 7825119e6ed..979c6424b81 100644 --- a/scene/3d/cpu_particles_3d.cpp +++ b/scene/3d/cpu_particles_3d.cpp @@ -152,6 +152,7 @@ float CPUParticles3D::get_speed_scale() const { } void CPUParticles3D::set_draw_order(DrawOrder p_order) { + ERR_FAIL_INDEX(p_order, DRAW_ORDER_MAX); draw_order = p_order; } @@ -1011,6 +1012,7 @@ void CPUParticles3D::_update_particle_data_buffer() { sorter.compare.particles = r; sorter.sort(order, pc); } else if (draw_order == DRAW_ORDER_VIEW_DEPTH) { + ERR_FAIL_NULL(get_viewport()); Camera3D *c = get_viewport()->get_camera(); if (c) { Vector3 dir = c->get_global_transform().basis.get_axis(2); //far away to close diff --git a/scene/3d/cpu_particles_3d.h b/scene/3d/cpu_particles_3d.h index d650bf95acc..4af959a7bff 100644 --- a/scene/3d/cpu_particles_3d.h +++ b/scene/3d/cpu_particles_3d.h @@ -43,6 +43,7 @@ public: DRAW_ORDER_INDEX, DRAW_ORDER_LIFETIME, DRAW_ORDER_VIEW_DEPTH, + DRAW_ORDER_MAX }; enum Parameter {