2.5 - Compiling 'hacks' for py

* Unicode calls in bpy_idprop.c were causing linking errors here. Probably Py-libs for windows would need recompiling with unicode before we can enable this. For now, commented out the offending calls.
This commit is contained in:
Joshua Leung 2008-12-21 10:36:29 +00:00
parent 3eaca525f2
commit 170b748c81
2 changed files with 8 additions and 7 deletions

@ -49,6 +49,7 @@ struct bConstraintOb; /* DNA_constraint_types.h */
struct bConstraintTarget; /* DNA_constraint_types.h*/ struct bConstraintTarget; /* DNA_constraint_types.h*/
struct Script; /* DNA_screen_types.h */ struct Script; /* DNA_screen_types.h */
struct BPyMenu; struct BPyMenu;
struct bContext;
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif

@ -60,8 +60,8 @@ static char *BPy_IDProperty_Map_ValidateAndCreate(char *name, IDProperty *group,
} else if (PyLong_Check(ob)) { } else if (PyLong_Check(ob)) {
val.i = (int) PyLong_AsLong(ob); val.i = (int) PyLong_AsLong(ob);
prop = IDP_New(IDP_INT, val, name); prop = IDP_New(IDP_INT, val, name);
} else if (PyUnicode_Check(ob)) { } else if (/*PyUnicode_Check(ob)*/0) {
val.str = _PyUnicode_AsString(ob); //val.str = _PyUnicode_AsString(ob);
prop = IDP_New(IDP_STRING, val, name); prop = IDP_New(IDP_STRING, val, name);
} else if (PySequence_Check(ob)) { } else if (PySequence_Check(ob)) {
PyObject *item; PyObject *item;
@ -105,7 +105,7 @@ static char *BPy_IDProperty_Map_ValidateAndCreate(char *name, IDProperty *group,
for (i=0; i<len; i++) { for (i=0; i<len; i++) {
key = PySequence_GetItem(keys, i); key = PySequence_GetItem(keys, i);
pval = PySequence_GetItem(vals, i); pval = PySequence_GetItem(vals, i);
if (!PyUnicode_Check(key)) { if (/*!PyUnicode_Check(key)*/1) {
IDP_FreeProperty(prop); IDP_FreeProperty(prop);
MEM_freeN(prop); MEM_freeN(prop);
Py_XDECREF(keys); Py_XDECREF(keys);
@ -114,7 +114,7 @@ static char *BPy_IDProperty_Map_ValidateAndCreate(char *name, IDProperty *group,
Py_XDECREF(pval); Py_XDECREF(pval);
return "invalid element in subgroup dict template!"; return "invalid element in subgroup dict template!";
} }
if (BPy_IDProperty_Map_ValidateAndCreate(_PyUnicode_AsString(key), prop, pval)) { if (/*BPy_IDProperty_Map_ValidateAndCreate(PyUnicode_AsString(key), prop, pval)*/0) {
IDP_FreeProperty(prop); IDP_FreeProperty(prop);
MEM_freeN(prop); MEM_freeN(prop);
Py_XDECREF(keys); Py_XDECREF(keys);
@ -143,12 +143,12 @@ static int BPy_IDGroup_Map_SetItem(IDProperty *prop, PyObject *key, PyObject *va
return EXPP_ReturnIntError( PyExc_TypeError, return EXPP_ReturnIntError( PyExc_TypeError,
"unsubscriptable object"); "unsubscriptable object");
if (!PyUnicode_Check(key)) if (/*!PyUnicode_Check(key)*/1)
return EXPP_ReturnIntError( PyExc_TypeError, return EXPP_ReturnIntError( PyExc_TypeError,
"only strings are allowed as subgroup keys" ); "only strings are allowed as subgroup keys" );
if (val == NULL) { if (val == NULL) {
IDProperty *pkey = IDP_GetPropertyFromGroup(prop, _PyUnicode_AsString(key)); IDProperty *pkey = 0;//IDP_GetPropertyFromGroup(prop, PyUnicode_AsString(key));
if (pkey) { if (pkey) {
IDP_RemFromGroup(prop, pkey); IDP_RemFromGroup(prop, pkey);
IDP_FreeProperty(pkey); IDP_FreeProperty(pkey);
@ -157,7 +157,7 @@ static int BPy_IDGroup_Map_SetItem(IDProperty *prop, PyObject *key, PyObject *va
} else return EXPP_ReturnIntError( PyExc_RuntimeError, "property not found in group" ); } else return EXPP_ReturnIntError( PyExc_RuntimeError, "property not found in group" );
} }
err = BPy_IDProperty_Map_ValidateAndCreate(_PyUnicode_AsString(key), prop, val); //err = BPy_IDProperty_Map_ValidateAndCreate(_PyUnicode_AsString(key), prop, val);
if (err) return EXPP_ReturnIntError( PyExc_RuntimeError, err ); if (err) return EXPP_ReturnIntError( PyExc_RuntimeError, err );
return 0; return 0;