[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57336] trunk/blender/source/blender/ editors/transform/transform_generics.c: Fix #35683: Addon working fine in console.

Sergey Sharybin sergey.vfx at gmail.com
Mon Jun 10 11:45:52 CEST 2013


Revision: 57336
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57336
Author:   nazgul
Date:     2013-06-10 09:45:51 +0000 (Mon, 10 Jun 2013)
Log Message:
-----------
Fix #35683: Addon working fine in console. But crashed when click GUI button.

Crash happened in ED_view3d_calc_zfac and happend in cases operator was invoked
from a region different from RGN_TYPE_WINDOW.

For a transformation zfac is only used in convertViewVec in cases region is
RGN_TYPE_WINDOW, so solved by just adding extra check in calculateCenter
for this particular case.

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

Modified: trunk/blender/source/blender/editors/transform/transform_generics.c
===================================================================
--- trunk/blender/source/blender/editors/transform/transform_generics.c	2013-06-10 08:28:39 UTC (rev 57335)
+++ trunk/blender/source/blender/editors/transform/transform_generics.c	2013-06-10 09:45:51 UTC (rev 57336)
@@ -1711,7 +1711,19 @@
 		else {
 			copy_v3_v3(vec, t->center);
 		}
-		t->zfac = ED_view3d_calc_zfac(t->ar->regiondata, vec, NULL);
+
+		/* zfac is only used convertViewVec only in cases operator was invoked in RGN_TYPE_WINDOW
+		 * and never used in other cases.
+		 *
+		 * We need special case here as well, since ED_view3d_calc_zfac will crahs when called
+		 * for a region different from RGN_TYPE_WINDOW.
+		 */
+		if (t->ar->regiontype == RGN_TYPE_WINDOW) {
+			t->zfac = ED_view3d_calc_zfac(t->ar->regiondata, vec, NULL);
+		}
+		else {
+			t->zfac = 0.0f;
+		}
 	}
 }
 




More information about the Bf-blender-cvs mailing list