Revision: 44723
          
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=44723
Author:   campbellbarton
Date:     2012-03-08 01:22:49 +0000 (Thu, 08 Mar 2012)
Log Message:
-----------
fix
- access to a meshs editmesh before the pointer was checked to be a mesh.
- uninitialized memory use in transform (not a problem practically but nice to 
quiet the error in valgrind).

Modified Paths:
--------------
    trunk/blender/source/blender/editors/mesh/bmesh_tools.c
    trunk/blender/source/blender/editors/transform/transform.c

Modified: trunk/blender/source/blender/editors/mesh/bmesh_tools.c
===================================================================
--- trunk/blender/source/blender/editors/mesh/bmesh_tools.c     2012-03-08 
00:23:28 UTC (rev 44722)
+++ trunk/blender/source/blender/editors/mesh/bmesh_tools.c     2012-03-08 
01:22:49 UTC (rev 44723)
@@ -2711,12 +2711,14 @@
 static EnumPropertyItem *shape_itemf(bContext *C, PointerRNA *UNUSED(ptr),  
PropertyRNA *UNUSED(prop), int *free)
 {      
        Object *obedit = CTX_data_edit_object(C);
-       Mesh *me = (obedit) ? obedit->data : NULL;
-       BMEditMesh *em = (me) ? me->edit_btmesh : NULL;
+       BMEditMesh *em;
        EnumPropertyItem *item = NULL;
        int totitem = 0;
 
-       if (obedit && obedit->type == OB_MESH && 
CustomData_has_layer(&em->bm->vdata, CD_SHAPEKEY)) {
+       if ((obedit && obedit->type == OB_MESH) &&
+           (em = BMEdit_FromObject(obedit)) &&
+           CustomData_has_layer(&em->bm->vdata, CD_SHAPEKEY))
+       {
                EnumPropertyItem tmp = {0, "", 0, "", ""};
                int a;
 

Modified: trunk/blender/source/blender/editors/transform/transform.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform.c  2012-03-08 
00:23:28 UTC (rev 44722)
+++ trunk/blender/source/blender/editors/transform/transform.c  2012-03-08 
01:22:49 UTC (rev 44723)
@@ -136,15 +136,13 @@
        vec[2]= 0.0f;
 }
 
-void convertViewVec(TransInfo *t, float *vec, int dx, int dy)
+void convertViewVec(TransInfo *t, float vec[3], int dx, int dy)
 {
-       if(t->spacetype==SPACE_VIEW3D) {
-               if(t->ar->regiontype == RGN_TYPE_WINDOW) {
-                       float mval_f[2];
-                       mval_f[0]= dx;
-                       mval_f[1]= dy;
-                       ED_view3d_win_to_delta(t->ar, mval_f, vec);
-               }
+       if ((t->spacetype == SPACE_VIEW3D) && (t->ar->regiontype == 
RGN_TYPE_WINDOW)) {
+               float mval_f[2];
+               mval_f[0] = dx;
+               mval_f[1] = dy;
+               ED_view3d_win_to_delta(t->ar, mval_f, vec);
        }
        else if(t->spacetype==SPACE_IMAGE) {
                float aspx, aspy;
@@ -172,6 +170,10 @@
                vec[1]= (v2d->cur.ymax-v2d->cur.ymin)*(dy)/divy;
                vec[2]= 0.0f;
        }
+       else {
+               printf("%s: called in an invalid context\n", __func__);
+               zero_v3(vec);
+       }
 }
 
 void projectIntView(TransInfo *t, float *vec, int *adr)

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to