From 84429e5d39fc6f0923794484f17d886aa212be69 Mon Sep 17 00:00:00 2001 From: Sergey Sharybin Date: Mon, 10 Jun 2013 09:45:51 +0000 Subject: 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. --- source/blender/editors/transform/transform_generics.c | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) (limited to 'source/blender') diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index a2957263ba9..6b0139aa8d9 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -1711,7 +1711,19 @@ void calculateCenter(TransInfo *t) 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; + } } } -- cgit v1.2.3