From 0ad0f71ba0d564a8383197ef2febb45d3506758f Mon Sep 17 00:00:00 2001 From: rafallus Date: Sun, 11 Apr 2021 17:06:27 -0500 Subject: [PATCH] Check input mesh is valid in SurfaceTool methods --- scene/resources/surface_tool.cpp | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scene/resources/surface_tool.cpp b/scene/resources/surface_tool.cpp index 9ed490bfa8..dcedd25a60 100644 --- a/scene/resources/surface_tool.cpp +++ b/scene/resources/surface_tool.cpp @@ -502,6 +502,7 @@ void SurfaceTool::deindex() { } void SurfaceTool::_create_list(const Ref &p_existing, int p_surface, List *r_vertex, List *r_index, int &lformat) { + ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::_create_list() must be a valid object of type Mesh"); Array arr = p_existing->surface_get_arrays(p_surface); ERR_FAIL_COND(arr.size() != VS::ARRAY_MAX); _create_list_from_arrays(arr, r_vertex, r_index, lformat); @@ -744,6 +745,7 @@ void SurfaceTool::create_from_triangle_arrays(const Array &p_arrays) { } void SurfaceTool::create_from(const Ref &p_existing, int p_surface) { + ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::create_from() must be a valid object of type Mesh"); clear(); primitive = p_existing->surface_get_primitive_type(p_surface); _create_list(p_existing, p_surface, &vertex_array, &index_array, format); @@ -751,6 +753,7 @@ void SurfaceTool::create_from(const Ref &p_existing, int p_surface) { } void SurfaceTool::create_from_blend_shape(const Ref &p_existing, int p_surface, const String &p_blend_shape_name) { + ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::create_from_blend_shape() must be a valid object of type Mesh"); clear(); primitive = p_existing->surface_get_primitive_type(p_surface); Array arr = p_existing->surface_get_blend_shape_arrays(p_surface); @@ -771,6 +774,7 @@ void SurfaceTool::create_from_blend_shape(const Ref &p_existing, int p_sur } void SurfaceTool::append_from(const Ref &p_existing, int p_surface, const Transform &p_xform) { + ERR_FAIL_COND_MSG(p_existing.is_null(), "First argument in SurfaceTool::append_from() must be a valid object of type Mesh"); if (vertex_array.size() == 0) { primitive = p_existing->surface_get_primitive_type(p_surface); format = 0;