[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31483] trunk/blender/source/blender/ blenkernel/intern/BME_conversions.c: Fix #23332: crash with screw + bevel modifiers.

Brecht Van Lommel brecht at blender.org
Fri Aug 20 18:02:21 CEST 2010


Revision: 31483
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31483
Author:   blendix
Date:     2010-08-20 18:02:20 +0200 (Fri, 20 Aug 2010)

Log Message:
-----------
Fix #23332: crash with screw + bevel modifiers. Since bevel doesn't support
mapping yet there's still some weirdness with display of hiding/selection,
but there's another bug report open about that.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/intern/BME_conversions.c

Modified: trunk/blender/source/blender/blenkernel/intern/BME_conversions.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/BME_conversions.c	2010-08-20 14:05:48 UTC (rev 31482)
+++ trunk/blender/source/blender/blenkernel/intern/BME_conversions.c	2010-08-20 16:02:20 UTC (rev 31483)
@@ -531,6 +531,7 @@
 	MFace *mface, *mf;
 	MEdge *medge, *me;
 	MVert *mvert, *mv;
+	int *origindex;
 	int totface,totedge,totvert,i,bmeshok,len, numTex, numCol;
 
 	BME_Vert *v1=NULL;
@@ -577,13 +578,16 @@
 
 	/*Make Verts*/
 	mvert = CDDM_get_verts(result);
+	origindex = result->getVertDataArray(result, CD_ORIGINDEX);
 	for(i=0,v1=bm->verts.first,mv=mvert;v1;v1=v1->next,i++,mv++){
 		VECCOPY(mv->co,v1->co);
 		mv->flag = (unsigned char)v1->flag;
 		mv->bweight = (char)(255.0*v1->bweight);
 		CustomData_from_bmesh_block(&bm->vdata, &result->vertData, &v1->data, i);
+		origindex[i] = ORIGINDEX_NONE;
 	}
 	medge = CDDM_get_edges(result);
+	origindex = result->getEdgeDataArray(result, CD_ORIGINDEX);
 	i=0;
 	for(e=bm->edges.first,me=medge;e;e=e->next){
 		if(e->tflag2){
@@ -600,12 +604,14 @@
 			me->bweight = (char)(255.0*e->bweight);
 			me->flag = e->flag;
 			CustomData_from_bmesh_block(&bm->edata, &result->edgeData, &e->data, i);
+			origindex[i] = ORIGINDEX_NONE;
 			me++;
 			i++;
 		}
 	}
 	if(totface){
 		mface = CDDM_get_faces(result);
+		origindex = result->getFaceDataArray(result, CD_ORIGINDEX);
 		/*make faces*/
 		for(i=0,f=bm->polys.first;f;f=f->next){
 			mf = &mface[i];
@@ -625,6 +631,7 @@
 				mf->flag = (unsigned char)f->flag;
 				CustomData_from_bmesh_block(&bm->pdata, &result->faceData, &f->data, i);
 				BME_DMloops_to_corners(bm, &result->faceData, i, f,numCol,numTex);
+				origindex[i] = ORIGINDEX_NONE;
 				i++;
 			}
 		}





More information about the Bf-blender-cvs mailing list