diff options
author | Julian Eisel <julian@blender.org> | 2020-09-07 17:14:58 +0300 |
---|---|---|
committer | Jeroen Bakker <jeroen@blender.org> | 2020-09-21 09:52:46 +0300 |
commit | 961bcf9e50352558f1af2451ccd09fea4f7c7258 (patch) | |
tree | cf2c329924fb79807e7035c6696a5f79762e8696 | |
parent | 0ed4fa6541891416a9ff57c796f8fdb758151eea (diff) |
Fix T80561: Crash when multi-mesh editing UVs with proportional editing
Because of a `goto` we would free a variable before it was declared.
Declare it before the `goto` and `NULL`-check the value before freeing.
-rw-r--r-- | source/blender/editors/transform/transform_convert_mesh_uv.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/source/blender/editors/transform/transform_convert_mesh_uv.c b/source/blender/editors/transform/transform_convert_mesh_uv.c index 632769c167e..92447c257da 100644 --- a/source/blender/editors/transform/transform_convert_mesh_uv.c +++ b/source/blender/editors/transform/transform_convert_mesh_uv.c @@ -322,6 +322,8 @@ void createTransUVs(bContext *C, TransInfo *t) } } + float *prop_dists = NULL; + /* Support other objects using PET to adjust these, unless connected is enabled. */ if (((is_prop_edit && !is_prop_connected) ? count : countsel) == 0) { goto finally; @@ -349,8 +351,6 @@ void createTransUVs(bContext *C, TransInfo *t) td = tc->data; td2d = tc->data_2d; - float *prop_dists = NULL; - if (is_prop_connected) { prop_dists = MEM_callocN(em->bm->totloop * sizeof(float), "TransObPropDists(UV Editing)"); @@ -397,7 +397,7 @@ void createTransUVs(bContext *C, TransInfo *t) finally: if (is_prop_connected) { - MEM_freeN(prop_dists); + MEM_SAFE_FREE(prop_dists); } if (is_island_center) { BM_uv_element_map_free(elementmap); |