[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22873] branches/blender2.5/blender/source /blender/makesrna: Workarounds for 2 rna bugs.

Campbell Barton ideasman42 at gmail.com
Sun Aug 30 01:05:48 CEST 2009


Revision: 22873
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22873
Author:   campbellbarton
Date:     2009-08-30 01:05:46 +0200 (Sun, 30 Aug 2009)

Log Message:
-----------
Workarounds for 2 rna bugs.
- mesh face properties that have no data are tested for length.
- the rawtype of MFace.verts is not set, defaulting to CHAR, meaning only verts with 256 verts could be added from python. temp workaround by making PROP_RAW_INT the first in the enum. For some reason makesrna.c doesn't set the raw type MFace.verts at all.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/makesrna/RNA_types.h
    branches/blender2.5/blender/source/blender/makesrna/intern/rna_mesh.c

Modified: branches/blender2.5/blender/source/blender/makesrna/RNA_types.h
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/RNA_types.h	2009-08-29 21:52:57 UTC (rev 22872)
+++ branches/blender2.5/blender/source/blender/makesrna/RNA_types.h	2009-08-29 23:05:46 UTC (rev 22873)
@@ -176,11 +176,11 @@
 } CollectionPointerLink;
 
 typedef enum RawPropertyType {
+	PROP_RAW_INT, // XXX - abused for types that are not set, eg. MFace.verts, needs fixing.
+	PROP_RAW_SHORT,
 	PROP_RAW_CHAR,
-	PROP_RAW_SHORT,
-	PROP_RAW_INT,
-	PROP_RAW_FLOAT,
-	PROP_RAW_DOUBLE
+	PROP_RAW_DOUBLE,
+	PROP_RAW_FLOAT
 } RawPropertyType;
 
 typedef struct RawArray {

Modified: branches/blender2.5/blender/source/blender/makesrna/intern/rna_mesh.c
===================================================================
--- branches/blender2.5/blender/source/blender/makesrna/intern/rna_mesh.c	2009-08-29 21:52:57 UTC (rev 22872)
+++ branches/blender2.5/blender/source/blender/makesrna/intern/rna_mesh.c	2009-08-29 23:05:46 UTC (rev 22873)
@@ -708,7 +708,10 @@
 static int rna_MeshFace_verts_get_length(PointerRNA *ptr)
 {
 	MFace *face= (MFace*)ptr->data;
-	return face->v4 ? 4 : 3;
+	if(face)
+		return face->v4 ? 4 : 3;
+	else
+		return 4; // XXX rna_raw_access wants the length of a dummy face. this needs fixing. - Campbell
 }
 
 static int rna_MeshFace_verts_set_length(PointerRNA *ptr, int length)





More information about the Bf-blender-cvs mailing list