[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