BGE Py API using python3 c/api calls. include bpy_compat.h to support py2.x
This commit is contained in:
@@ -76,9 +76,9 @@ PyObject* listvalue_mapping_subscript(PyObject* self, PyObject* pyindex)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
if (PyString_Check(pyindex))
|
||||
if (PyUnicode_Check(pyindex))
|
||||
{
|
||||
CValue *item = ((CListValue*) list)->FindValue(PyString_AsString(pyindex));
|
||||
CValue *item = ((CListValue*) list)->FindValue(_PyUnicode_AsString(pyindex));
|
||||
if (item) {
|
||||
PyObject* pyobj = item->ConvertValueToPython();
|
||||
if(pyobj)
|
||||
@@ -87,14 +87,14 @@ PyObject* listvalue_mapping_subscript(PyObject* self, PyObject* pyindex)
|
||||
return item->GetProxy();
|
||||
}
|
||||
}
|
||||
else if (PyInt_Check(pyindex))
|
||||
else if (PyLong_Check(pyindex))
|
||||
{
|
||||
int index = PyInt_AsLong(pyindex);
|
||||
int index = PyLong_AsSsize_t(pyindex);
|
||||
return listvalue_buffer_item(self, index); /* wont add a ref */
|
||||
}
|
||||
|
||||
PyObject *pyindex_str = PyObject_Repr(pyindex); /* new ref */
|
||||
PyErr_Format(PyExc_KeyError, "CList[key]: '%s' key not in list", PyString_AsString(pyindex_str));
|
||||
PyErr_Format(PyExc_KeyError, "CList[key]: '%s' key not in list", _PyUnicode_AsString(pyindex_str));
|
||||
Py_DECREF(pyindex_str);
|
||||
return NULL;
|
||||
}
|
||||
@@ -220,8 +220,8 @@ static int listvalue_buffer_contains(PyObject *self_v, PyObject *value)
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (PyString_Check(value)) {
|
||||
if (self->FindValue((const char *)PyString_AsString(value))) {
|
||||
if (PyUnicode_Check(value)) {
|
||||
if (self->FindValue((const char *)_PyUnicode_AsString(value))) {
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
@@ -542,7 +542,7 @@ PyObject* CListValue::Pyindex(PyObject *value)
|
||||
CValue* elem = GetValue(i);
|
||||
if (checkobj==elem || CheckEqual(checkobj,elem))
|
||||
{
|
||||
result = PyInt_FromLong(i);
|
||||
result = PyLong_FromSsize_t(i);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -565,7 +565,7 @@ PyObject* CListValue::Pycount(PyObject* value)
|
||||
|
||||
if (checkobj==NULL) { /* in this case just return that there are no items in the list */
|
||||
PyErr_Clear();
|
||||
return PyInt_FromLong(0);
|
||||
return PyLong_FromSsize_t(0);
|
||||
}
|
||||
|
||||
int numelem = GetCount();
|
||||
@@ -579,7 +579,7 @@ PyObject* CListValue::Pycount(PyObject* value)
|
||||
}
|
||||
checkobj->Release();
|
||||
|
||||
return PyInt_FromLong(numfound);
|
||||
return PyLong_FromSsize_t(numfound);
|
||||
}
|
||||
|
||||
/* Matches python dict.get(key, [default]) */
|
||||
@@ -606,7 +606,7 @@ PyObject* CListValue::Pyget(PyObject *args)
|
||||
/* Matches python dict.has_key() */
|
||||
PyObject* CListValue::Pyhas_key(PyObject* value)
|
||||
{
|
||||
if (PyString_Check(value) && FindValue((const char *)PyString_AsString(value)))
|
||||
if (PyUnicode_Check(value) && FindValue((const char *)_PyUnicode_AsString(value)))
|
||||
Py_RETURN_TRUE;
|
||||
|
||||
Py_RETURN_FALSE;
|
||||
|
Reference in New Issue
Block a user