[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [56069] trunk/blender/source/blender/ render/intern/source/convertblender.c: Fix #34975: crash rendering curve/ text with modifiers that alter topology,

Brecht Van Lommel brechtvanlommel at pandora.be
Mon Apr 15 19:45:16 CEST 2013


Revision: 56069
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=56069
Author:   blendix
Date:     2013-04-15 17:45:15 +0000 (Mon, 15 Apr 2013)
Log Message:
-----------
Fix #34975: crash rendering curve/text with modifiers that alter topology,
was issue in new freestyle code.

Modified Paths:
--------------
    trunk/blender/source/blender/render/intern/source/convertblender.c

Modified: trunk/blender/source/blender/render/intern/source/convertblender.c
===================================================================
--- trunk/blender/source/blender/render/intern/source/convertblender.c	2013-04-15 16:24:35 UTC (rev 56068)
+++ trunk/blender/source/blender/render/intern/source/convertblender.c	2013-04-15 17:45:15 UTC (rev 56069)
@@ -2662,7 +2662,7 @@
 #ifdef WITH_FREESTYLE
 	const int *index_mf_to_mpoly = NULL;
 	const int *index_mp_to_orig = NULL;
-	FreestyleFace *ffa;
+	FreestyleFace *ffa = NULL;
 #endif
 	/* Curve *cu= ELEM(ob->type, OB_FONT, OB_CURVE) ? ob->data : NULL; */
 
@@ -2693,10 +2693,14 @@
 			ma= give_render_material(re, ob, mat_iter+1);
 			end= dm->getNumTessFaces(dm);
 			mface= dm->getTessFaceArray(dm);
+
 #ifdef WITH_FREESTYLE
-			index_mf_to_mpoly= dm->getTessFaceDataArray(dm, CD_ORIGINDEX);
-			index_mp_to_orig= dm->getPolyDataArray(dm, CD_ORIGINDEX);
-			ffa= CustomData_get_layer(&((Mesh *)ob->data)->pdata, CD_FREESTYLE_FACE);
+			if(ob->type == OB_MESH) {
+				Mesh *me= ob->data;
+				index_mf_to_mpoly= dm->getTessFaceDataArray(dm, CD_ORIGINDEX);
+				index_mp_to_orig= dm->getPolyDataArray(dm, CD_ORIGINDEX);
+				ffa= CustomData_get_layer(&me->pdata, CD_FREESTYLE_FACE);
+			}
 #endif
 
 			for (a=0; a<end; a++, mface++) {
@@ -3483,7 +3487,7 @@
 #ifdef WITH_FREESTYLE
 					index_mf_to_mpoly= dm->getTessFaceDataArray(dm, CD_ORIGINDEX);
 					index_mp_to_orig= dm->getPolyDataArray(dm, CD_ORIGINDEX);
-					ffa= CustomData_get_layer(&((Mesh *)ob->data)->pdata, CD_FREESTYLE_FACE);
+					ffa= CustomData_get_layer(&me->pdata, CD_FREESTYLE_FACE);
 #endif
 					
 					for (a=0; a<end; a++, mface++) {




More information about the Bf-blender-cvs mailing list