diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-07-08 19:34:41 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2009-07-08 19:34:41 +0400 |
commit | 5e749af4295ba3120cd882f6e35b49a80292915e (patch) | |
tree | 2b350597577eb619dd3192dc5250a7fbbb4fb6f0 /source/blender/editors/mesh/editmesh.c | |
parent | f3fd7d88002dcfe42e51738cbb7d2d2be756dd19 (diff) |
2.5: Various Fixes
* Context panel now draws without header, with arrows, no scene name.
* Softbody vertex group search popup.
* Improve names for autogenerated shortcut keys in menus.
* Make most Select menus in the 3D view header work.
* Fix armature border select selection syncing.
* Add POSE_OT_select_constraint_target,
MESH_OT_select_by_number_vertices, MESH_OT_select_vertex_path.
* Merge mesh select similar into one operator.
* Don't give MESH_OT_select_random Space hotkey.
* Add DAG_object_flush_update to many mesh edit tools, not calling this
will crash with modifiers.
* RNA_def_enum_funcs for dynamic enums in operators, but not very useful
without context yet.
* Fix refresh issue with image window header + editmode.
* Fix drawing of shadow mesh for image painting.
* Remove deprecated uiDefMenuButO and uiDefMenuSep functions.
* Remove keyval.c, code is in wm_keymap.c already.
* Rename WM_operator_redo to WM_operator_props_popup.
Diffstat (limited to 'source/blender/editors/mesh/editmesh.c')
-rw-r--r-- | source/blender/editors/mesh/editmesh.c | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/source/blender/editors/mesh/editmesh.c b/source/blender/editors/mesh/editmesh.c index 7f5201f4704..3ac6a1778db 100644 --- a/source/blender/editors/mesh/editmesh.c +++ b/source/blender/editors/mesh/editmesh.c @@ -1947,26 +1947,35 @@ void EM_init_index_arrays(EditMesh *em, int forVert, int forEdge, int forFace) if (forVert) { em->totvert= BLI_countlist(&em->verts); - g_em_vert_array = MEM_mallocN(sizeof(*g_em_vert_array)*em->totvert, "em_v_arr"); - for (i=0,eve=em->verts.first; eve; i++,eve=eve->next) - g_em_vert_array[i] = eve; + if(em->totvert) { + g_em_vert_array = MEM_mallocN(sizeof(*g_em_vert_array)*em->totvert, "em_v_arr"); + + for (i=0,eve=em->verts.first; eve; i++,eve=eve->next) + g_em_vert_array[i] = eve; + } } if (forEdge) { em->totedge= BLI_countlist(&em->edges); - g_em_edge_array = MEM_mallocN(sizeof(*g_em_edge_array)*em->totedge, "em_e_arr"); - for (i=0,eed=em->edges.first; eed; i++,eed=eed->next) - g_em_edge_array[i] = eed; + if(em->totedge) { + g_em_edge_array = MEM_mallocN(sizeof(*g_em_edge_array)*em->totedge, "em_e_arr"); + + for (i=0,eed=em->edges.first; eed; i++,eed=eed->next) + g_em_edge_array[i] = eed; + } } if (forFace) { em->totface= BLI_countlist(&em->faces); - g_em_face_array = MEM_mallocN(sizeof(*g_em_face_array)*em->totface, "em_f_arr"); - for (i=0,efa=em->faces.first; efa; i++,efa=efa->next) - g_em_face_array[i] = efa; + if(em->totface) { + g_em_face_array = MEM_mallocN(sizeof(*g_em_face_array)*em->totface, "em_f_arr"); + + for (i=0,efa=em->faces.first; efa; i++,efa=efa->next) + g_em_face_array[i] = efa; + } } } |