fix for memory leak when calling wpaint_make_validmap() with no vertex groups.
authorCampbell Barton <ideasman42@gmail.com>
Thu, 6 Oct 2011 01:51:01 +0000 (01:51 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 6 Oct 2011 01:51:01 +0000 (01:51 +0000)
source/blender/editors/sculpt_paint/paint_vertex.c

index 3ba81715b90a57579061f33126578fb8de791d80..c3b575d5d21006d77323fb4e4fbe26cc0583e552 100644 (file)
@@ -1812,17 +1812,20 @@ 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;
 
+       if(ob->defbase.first == NULL) {
+               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, i=0; dg; dg=dg->next, i++) {
+       for (dg=ob->defbase.first; dg; dg=dg->next) {
                BLI_ghash_insert(gh, dg->name, NULL);
        }
 
-       if (!i)
-               return NULL;
-
        vgroup_validmap= MEM_callocN(i, "wpaint valid map");
 
        /*now loop through the armature modifiers and identify deform bones*/