From 4e6be49ca46f20879c9e1e75ec9cb9340eabf62f Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Thu, 6 Oct 2011 01:51:01 +0000 Subject: [PATCH] fix for memory leak when calling wpaint_make_validmap() with no vertex groups. --- .../blender/editors/sculpt_paint/paint_vertex.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/source/blender/editors/sculpt_paint/paint_vertex.c b/source/blender/editors/sculpt_paint/paint_vertex.c index 3ba81715b90..c3b575d5d21 100644 --- a/source/blender/editors/sculpt_paint/paint_vertex.c +++ b/source/blender/editors/sculpt_paint/paint_vertex.c @@ -1812,16 +1812,19 @@ static char *wpaint_make_validmap(Object *ob) bDeformGroup *dg; ModifierData *md; char *vgroup_validmap; - GHash *gh = BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "wpaint_make_validmap gh"); + GHash *gh; int i = 0, step1=1; - /*add all names to a hash table*/ - for (dg=ob->defbase.first, i=0; dg; dg=dg->next, i++) { - BLI_ghash_insert(gh, dg->name, NULL); + if(ob->defbase.first == NULL) { + return NULL; } - if (!i) - return NULL; + gh= BLI_ghash_new(BLI_ghashutil_strhash, BLI_ghashutil_strcmp, "wpaint_make_validmap gh"); + + /*add all names to a hash table*/ + for (dg=ob->defbase.first; dg; dg=dg->next) { + BLI_ghash_insert(gh, dg->name, NULL); + } vgroup_validmap= MEM_callocN(i, "wpaint valid map");