use Py_ssize_t rather than int when dealing with list sizes (original patch from Fedora but applied changes elsewhere too), also replace PyList_Size with PyList_GET_SIZE where typechecking is already done.
This commit is contained in:
parent
9baff83d72
commit
9161d3ce4b
@ -344,7 +344,7 @@ void bpy_text_clear_modules(int clear_all)
|
||||
|
||||
/* looping over the dict */
|
||||
PyObject *key, *value;
|
||||
int pos= 0;
|
||||
Py_ssize_t pos= 0;
|
||||
|
||||
/* new list */
|
||||
PyObject *list;
|
||||
@ -374,7 +374,7 @@ void bpy_text_clear_modules(int clear_all)
|
||||
}
|
||||
|
||||
/* remove all our modules */
|
||||
for(pos=0; pos < PyList_Size(list); pos++) {
|
||||
for(pos=0; pos < PyList_GET_SIZE(list); pos++) {
|
||||
/* PyObject_Print(key, stderr, 0); */
|
||||
key= PyList_GET_ITEM(list, pos);
|
||||
PyDict_DelItem(modules, key);
|
||||
|
@ -4608,7 +4608,7 @@ static PyObject *pyrna_func_call(BPy_FunctionRNA *self, PyObject *args, PyObject
|
||||
|
||||
|
||||
#ifdef DEBUG_STRING_FREE
|
||||
// if(PyList_Size(string_free_ls)) printf("%.200s.%.200s(): has %d strings\n", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), (int)PyList_Size(string_free_ls));
|
||||
// if(PyList_GET_SIZE(string_free_ls)) printf("%.200s.%.200s(): has %d strings\n", RNA_struct_identifier(self_ptr->type), RNA_function_identifier(self_func), (int)PyList_GET_SIZE(string_free_ls));
|
||||
Py_DECREF(string_free_ls);
|
||||
#undef DEBUG_STRING_FREE
|
||||
#endif
|
||||
|
@ -983,7 +983,7 @@ static PyObject *M_Geometry_tesselate_polygon(PyObject *UNUSED(self), PyObject *
|
||||
|
||||
static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray)
|
||||
{
|
||||
int len, i;
|
||||
Py_ssize_t len, i;
|
||||
PyObject *list_item, *item_1, *item_2;
|
||||
boxPack *box;
|
||||
|
||||
@ -995,14 +995,14 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray)
|
||||
return -1;
|
||||
}
|
||||
|
||||
len= PyList_Size(value);
|
||||
len= PyList_GET_SIZE(value);
|
||||
|
||||
(*boxarray)= MEM_mallocN(len*sizeof(boxPack), "boxPack box");
|
||||
|
||||
|
||||
for(i= 0; i < len; i++) {
|
||||
list_item= PyList_GET_ITEM(value, i);
|
||||
if(!PyList_Check(list_item) || PyList_Size(list_item) < 4) {
|
||||
if(!PyList_Check(list_item) || PyList_GET_SIZE(list_item) < 4) {
|
||||
MEM_freeN(*boxarray);
|
||||
PyErr_SetString(PyExc_TypeError,
|
||||
"can only pack a list of [x, y, w, h]");
|
||||
@ -1034,11 +1034,11 @@ static int boxPack_FromPyObject(PyObject *value, boxPack **boxarray)
|
||||
|
||||
static void boxPack_ToPyObject(PyObject *value, boxPack **boxarray)
|
||||
{
|
||||
int len, i;
|
||||
Py_ssize_t len, i;
|
||||
PyObject *list_item;
|
||||
boxPack *box;
|
||||
|
||||
len= PyList_Size(value);
|
||||
len= PyList_GET_SIZE(value);
|
||||
|
||||
for(i= 0; i < len; i++) {
|
||||
box= (*boxarray)+i;
|
||||
@ -1062,7 +1062,7 @@ PyDoc_STRVAR(M_Geometry_box_pack_2d_doc,
|
||||
static PyObject *M_Geometry_box_pack_2d(PyObject *UNUSED(self), PyObject *boxlist)
|
||||
{
|
||||
float tot_width= 0.0f, tot_height= 0.0f;
|
||||
int len;
|
||||
Py_ssize_t len;
|
||||
|
||||
PyObject *ret;
|
||||
|
||||
|
@ -507,9 +507,10 @@ extern "C" void StartKetsjiShell(struct bContext *C, struct ARegion *ar, rcti *c
|
||||
//PyDict_Clear(PyModule_GetDict(gameLogic));
|
||||
|
||||
// Keep original items, means python plugins will autocomplete members
|
||||
int listIndex;
|
||||
PyObject *gameLogic_keys_new = PyDict_Keys(PyModule_GetDict(gameLogic));
|
||||
for (listIndex=0; listIndex < PyList_Size(gameLogic_keys_new); listIndex++) {
|
||||
const Py_ssize_t numitems= PyList_GET_SIZE(gameLogic_keys_new);
|
||||
Py_ssize_t listIndex;
|
||||
for (listIndex=0; listIndex < numitems; listIndex++) {
|
||||
PyObject* item = PyList_GET_ITEM(gameLogic_keys_new, listIndex);
|
||||
if (!PySequence_Contains(gameLogic_keys, item)) {
|
||||
PyDict_DelItem( PyModule_GetDict(gameLogic), item);
|
||||
|
@ -387,7 +387,7 @@ PyObject* listvalue_buffer_slice(PyObject* self,Py_ssize_t ilow, Py_ssize_t ihig
|
||||
static PyObject *listvalue_buffer_concat(PyObject * self, PyObject * other)
|
||||
{
|
||||
CListValue *listval= static_cast<CListValue *>(BGE_PROXY_REF(self));
|
||||
int i, numitems, numitems_orig;
|
||||
Py_ssize_t i, numitems, numitems_orig;
|
||||
|
||||
if (listval==NULL) {
|
||||
PyErr_SetString(PyExc_SystemError, "CList+other, "BGE_PROXY_ERROR_MSG);
|
||||
@ -408,7 +408,7 @@ static PyObject *listvalue_buffer_concat(PyObject * self, PyObject * other)
|
||||
CValue* listitemval;
|
||||
bool error = false;
|
||||
|
||||
numitems = PyList_Size(other);
|
||||
numitems = PyList_GET_SIZE(other);
|
||||
|
||||
/* copy the first part of the list */
|
||||
listval_new->Resize(numitems_orig + numitems);
|
||||
|
@ -546,8 +546,8 @@ CValue* CValue::ConvertPythonToValue(PyObject* pyobj, const char *error_prefix)
|
||||
CListValue* listval = new CListValue();
|
||||
bool error = false;
|
||||
|
||||
int i;
|
||||
int numitems = PyList_Size(pyobj);
|
||||
Py_ssize_t i;
|
||||
Py_ssize_t numitems = PyList_GET_SIZE(pyobj);
|
||||
for (i=0;i<numitems;i++)
|
||||
{
|
||||
PyObject* listitem = PyList_GetItem(pyobj,i); /* borrowed ref */
|
||||
|
@ -725,7 +725,7 @@ static PyObject *gLibNew(PyObject*, PyObject* args)
|
||||
if(idcode==ID_ME) {
|
||||
PyObject *ret= PyList_New(0);
|
||||
PyObject *item;
|
||||
for(int i= 0; i < PyList_GET_SIZE(names); i++) {
|
||||
for(Py_ssize_t i= 0; i < PyList_GET_SIZE(names); i++) {
|
||||
name= _PyUnicode_AsString(PyList_GET_ITEM(names, i));
|
||||
if(name) {
|
||||
RAS_MeshObject *meshobj= kx_scene->GetSceneConverter()->ConvertMeshSpecial(kx_scene, maggie, name);
|
||||
@ -1751,7 +1751,7 @@ static void initPySysObjects(Main *maggie)
|
||||
|
||||
initPySysObjects__append(sys_path, gp_GamePythonPath);
|
||||
|
||||
// fprintf(stderr, "\nNew Path: %d ", PyList_Size(sys_path));
|
||||
// fprintf(stderr, "\nNew Path: %d ", PyList_GET_SIZE(sys_path));
|
||||
// PyObject_Print(sys_path, stderr, 0);
|
||||
}
|
||||
|
||||
@ -1775,7 +1775,7 @@ static void restorePySysObjects(void)
|
||||
gp_OrigPythonSysModules= NULL;
|
||||
|
||||
|
||||
// fprintf(stderr, "\nRestore Path: %d ", PyList_Size(sys_path));
|
||||
// fprintf(stderr, "\nRestore Path: %d ", PyList_GET_SIZE(sys_path));
|
||||
// PyObject_Print(sys_path, stderr, 0);
|
||||
}
|
||||
|
||||
|
@ -1916,7 +1916,7 @@ void KX_Scene::Render2DFilters(RAS_ICanvas* canvas)
|
||||
|
||||
void KX_Scene::RunDrawingCallbacks(PyObject* cb_list)
|
||||
{
|
||||
int len;
|
||||
Py_ssize_t len;
|
||||
|
||||
if (cb_list && (len=PyList_GET_SIZE(cb_list)))
|
||||
{
|
||||
@ -1925,7 +1925,7 @@ void KX_Scene::RunDrawingCallbacks(PyObject* cb_list)
|
||||
PyObject* ret;
|
||||
|
||||
// Iterate the list and run the callbacks
|
||||
for (int pos=0; pos < len; pos++)
|
||||
for (Py_ssize_t pos=0; pos < len; pos++)
|
||||
{
|
||||
func= PyList_GET_ITEM(cb_list, pos);
|
||||
ret= PyObject_Call(func, args, NULL);
|
||||
|
Loading…
Reference in New Issue
Block a user