[Bf-blender-cvs] [55b241d32a2] blender2.8: Fix texture space transform crash

Campbell Barton noreply at git.blender.org
Tue May 15 09:25:25 CEST 2018


Commit: 55b241d32a2c3192a439c51aff99a0a248ca9ef2
Author: Campbell Barton
Date:   Tue May 15 09:24:14 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB55b241d32a2c3192a439c51aff99a0a248ca9ef2

Fix texture space transform crash

Own regression from multi-object transform.

===================================================================

M	source/blender/editors/transform/transform_conversions.c

===================================================================

diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c
index 7c5f7dba045..ddd8af99afc 100644
--- a/source/blender/editors/transform/transform_conversions.c
+++ b/source/blender/editors/transform/transform_conversions.c
@@ -303,33 +303,29 @@ static void createTransTexspace(TransInfo *t)
 	ob = OBACT(view_layer);
 
 	if (ob == NULL) { // Shouldn't logically happen, but still...
-		t->data_len_all = 0;
 		return;
 	}
 
 	id = ob->data;
 	if (id == NULL || !ELEM(GS(id->name), ID_ME, ID_CU, ID_MB)) {
 		BKE_report(t->reports, RPT_ERROR, "Unsupported object type for text-space transform");
-		t->data_len_all = 0;
 		return;
 	}
 
 	if (BKE_object_obdata_is_libdata(ob)) {
 		BKE_report(t->reports, RPT_ERROR, "Linked data can't text-space transform");
-		t->data_len_all = 0;
 		return;
 	}
 
 
 	{
-		TransDataContainer *tc = t->data_container = MEM_callocN(sizeof(*t->data_container), __func__);
+		BLI_assert(t->data_container_len == 1);
+		TransDataContainer *tc = t->data_container;
 		tc->data_len = 1;
 		td = tc->data = MEM_callocN(sizeof(TransData), "TransTexspace");
 		td->ext = tc->data_ext = MEM_callocN(sizeof(TransDataExtension), "TransTexspace");
 	}
 
-	t->data_len_all = 1;
-
 	td->flag = TD_SELECTED;
 	copy_v3_v3(td->center, ob->obmat[3]);
 	td->ob = ob;
@@ -8321,6 +8317,7 @@ void createTransData(bContext *C, TransInfo *t)
 	/* if tests must match recalcData for correct updates */
 	if (t->options & CTX_TEXTURE) {
 		t->flag |= T_TEXTURE;
+		t->obedit_type = -1;
 
 		createTransTexspace(t);
 		countAndCleanTransDataContainer(t);



More information about the Bf-blender-cvs mailing list