- fix for using ['prop'] in RNA api
authorCampbell Barton <ideasman42@gmail.com>
Thu, 9 Sep 2010 06:06:37 +0000 (06:06 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Thu, 9 Sep 2010 06:06:37 +0000 (06:06 +0000)
- fix for testing without USE_PY_METACLASS defined.

source/blender/makesrna/intern/rna_access.c
source/blender/python/intern/bpy_props.c
source/blender/python/intern/bpy_rna.c

index 4205a96..9c4ab59 100644 (file)
@@ -532,7 +532,7 @@ int RNA_struct_is_a(StructRNA *type, StructRNA *srna)
 
 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 */
index 9ac9ae1..3d8eb04 100644 (file)
@@ -123,7 +123,7 @@ static PyObject *bpy_prop_deferred_return(PyObject *func, PyObject *kw)
                 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; \
index 46e0211..f5e8e0e 100644 (file)
@@ -4276,8 +4276,8 @@ static PyObject* pyrna_srna_ExternalType(StructRNA *srna)
                        fprintf(stderr, "pyrna_srna_ExternalType: failed to find 'bpy_types' module\n");
                        return NULL;
                }
-#ifdef USE_PY_METACLASS
                bpy_types_dict = PyModule_GetDict(bpy_types); // borrow
+#ifdef USE_PY_METACLASS
                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 @@ static PyObject* pyrna_srna_Subtype(StructRNA *srna)
                        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