diff options
author | Nicholas Bishop <nicholasbishop@gmail.com> | 2010-06-07 22:50:19 +0400 |
---|---|---|
committer | Nicholas Bishop <nicholasbishop@gmail.com> | 2010-06-07 22:50:19 +0400 |
commit | 52caf71ee2febf9c697fe66ce36fb9a9597c9a44 (patch) | |
tree | 1d11fbcdc8a33c2470d1f41eb6ff2e128be42fd1 /source/blender/editors/object/object_vgroup.c | |
parent | 6a8bff9570ca3325e286694586f77d8905e47ea7 (diff) |
Bugfix: copying a newly-created vertex group caused a crash.
Diffstat (limited to 'source/blender/editors/object/object_vgroup.c')
-rw-r--r-- | source/blender/editors/object/object_vgroup.c | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/source/blender/editors/object/object_vgroup.c b/source/blender/editors/object/object_vgroup.c index 47390c19742..2235bdd8f2a 100644 --- a/source/blender/editors/object/object_vgroup.c +++ b/source/blender/editors/object/object_vgroup.c @@ -129,17 +129,8 @@ int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_tot) case ID_ME: { Mesh *me = (Mesh *)id; - *dvert_tot= me->totvert; - - if (!me->edit_mesh) { - int i; - - *dvert_arr= MEM_mallocN(sizeof(void*)*me->totvert, "vgroup parray from me"); - for (i=0; i<me->totvert; i++) { - (*dvert_arr)[i] = me->dvert + i; - } - } else { + if(me->edit_mesh) { EditMesh *em = me->edit_mesh; EditVert *eve; int i; @@ -161,8 +152,20 @@ int ED_vgroup_give_parray(ID *id, MDeformVert ***dvert_arr, int *dvert_tot) (*dvert_arr)[i] = CustomData_em_get(&em->vdata, eve->data, CD_MDEFORMVERT); } + return 1; + } + else if(me->dvert) { + int i; + + *dvert_tot= me->totvert; + *dvert_arr= MEM_mallocN(sizeof(void*)*me->totvert, "vgroup parray from me"); + + for (i=0; i<me->totvert; i++) { + (*dvert_arr)[i] = me->dvert + i; + } + + return 1; } - return 1; } case ID_LT: { |