[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [44723] trunk/blender/source/blender/ editors: fix
Campbell Barton
ideasman42 at gmail.com
Thu Mar 8 02:22:56 CET 2012
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)
More information about the Bf-blender-cvs
mailing list