[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [31836] trunk/blender/source/blender: - fix for using ['prop'] in RNA api

Campbell Barton ideasman42 at gmail.com
Thu Sep 9 08:06:38 CEST 2010


Revision: 31836
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=31836
Author:   campbellbarton
Date:     2010-09-09 08:06:37 +0200 (Thu, 09 Sep 2010)

Log Message:
-----------
- fix for using ['prop'] in RNA api
- fix for testing without USE_PY_METACLASS defined.

Modified Paths:
--------------
    trunk/blender/source/blender/makesrna/intern/rna_access.c
    trunk/blender/source/blender/python/intern/bpy_props.c
    trunk/blender/source/blender/python/intern/bpy_rna.c

Modified: trunk/blender/source/blender/makesrna/intern/rna_access.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_access.c	2010-09-09 05:37:22 UTC (rev 31835)
+++ trunk/blender/source/blender/makesrna/intern/rna_access.c	2010-09-09 06:06:37 UTC (rev 31836)
@@ -532,7 +532,7 @@
 
 PropertyRNA *RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
 {
-	if(identifier[0]=='[' && identifier[1]=='"') { // "  (dummy comment to avoid confusing some function lists in text editors)
+	if(identifier[0]=='[' && ELEM(identifier[1], '"', '\'')) { // "  (dummy comment to avoid confusing some function lists in text editors)
 		/* id prop lookup, not so common */
 		PropertyRNA *r_prop= NULL;
 		PointerRNA r_ptr; /* only support single level props */

Modified: trunk/blender/source/blender/python/intern/bpy_props.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_props.c	2010-09-09 05:37:22 UTC (rev 31835)
+++ trunk/blender/source/blender/python/intern/bpy_props.c	2010-09-09 06:06:37 UTC (rev 31836)
@@ -123,7 +123,7 @@
 		 PyErr_SetString(PyExc_ValueError, "all args must be keywords"); \
 		return NULL; \
 	} \
-	srna= srna_from_self(self, "##_func(...):"); \
+	srna= srna_from_self(self, #_func"(...):"); \
 	if(srna==NULL) { \
 		if(PyErr_Occurred()) \
 			return NULL; \

Modified: trunk/blender/source/blender/python/intern/bpy_rna.c
===================================================================
--- trunk/blender/source/blender/python/intern/bpy_rna.c	2010-09-09 05:37:22 UTC (rev 31835)
+++ trunk/blender/source/blender/python/intern/bpy_rna.c	2010-09-09 06:06:37 UTC (rev 31836)
@@ -4276,8 +4276,8 @@
 			fprintf(stderr, "pyrna_srna_ExternalType: failed to find 'bpy_types' module\n");
 			return NULL;
 		}
+		bpy_types_dict = PyModule_GetDict(bpy_types); // borrow
 #ifdef USE_PY_METACLASS
-		bpy_types_dict = PyModule_GetDict(bpy_types); // borrow
 		bpy_types_rna_meta_base = PyDict_GetItemString(bpy_types_dict, BPY_SRNA_IDPROP_META);
 #endif
 		Py_DECREF(bpy_types); // fairly safe to assume the dict is kept
@@ -4353,7 +4353,7 @@
 			metaclass= bpy_types_rna_meta_base;
 		}
 #else
-		if(RNA_struct_idprops_check(srna) && !PyObject_IsSubclass(py_base, &pyrna_struct_meta_idprop_Type)) {
+		if(RNA_struct_idprops_check(srna) && !PyObject_IsSubclass(py_base, (PyObject *)&pyrna_struct_meta_idprop_Type)) {
 			metaclass= (PyObject *)&pyrna_struct_meta_idprop_Type;
 		}
 #endif





More information about the Bf-blender-cvs mailing list