use Py_ssize_t rather than int when dealing with list sizes (original patch from...
authorCampbell Barton <ideasman42@gmail.com>
Tue, 6 Sep 2011 23:46:20 +0000 (23:46 +0000)
committerCampbell Barton <ideasman42@gmail.com>
Tue, 6 Sep 2011 23:46:20 +0000 (23:46 +0000)
source/blender/python/generic/bpy_internal_import.c
source/blender/python/intern/bpy_rna.c
source/blender/python/mathutils/mathutils_geometry.c
source/gameengine/BlenderRoutines/BL_KetsjiEmbedStart.cpp
source/gameengine/Expressions/ListValue.cpp
source/gameengine/Expressions/Value.cpp
source/gameengine/Ketsji/KX_PythonInit.cpp
source/gameengine/Ketsji/KX_Scene.cpp

index f0158fe72c30b9da9c8163076ec44d4de227179f..67ed90c79eb164890448f64025b736e3af3b0df6 100644 (file)
@@ -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);
index d10c8c843e8cd654bfa2aeda1162cb2d5def2e01..2212499d842e439bb7ee4fa322d15a161ce18416 100644 (file)
@@ -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
index bcdfe020e1ab10e3d6585dc6bd8e6324ca177dfd..0394d732ae32e97bd0b67c3f5f3b4f62611ad18c 100644 (file)
@@ -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;
 
index 40f1701e44a89a2582b19a15f144b92a01107acb..810e9b6ddfb1631972f835890cf14693a79ba1a4 100644 (file)
@@ -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);
index 271d5067dd9733352db35173e43d2797013b1dfa..934f2a8dd8794b6e26117e4c179790a490cab7df 100644 (file)
@@ -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);
index e60b380e95cfc96732e11a804678324bc213450e..41c0850a779e2f4ffa0572a9345c5acae071c027 100644 (file)
@@ -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 */
index 395e2048cb7a07e1ba5d594ca0d539ffb67f7ef7..f14d73cb990d6374dcf04913e5eb075225de342e 100644 (file)
@@ -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);
 }
 
index 06e343cedb235ea5f2496161de00d97a1e40842d..7c76ab01e93bb6bd2be20fc0d637e43b399445d0 100644 (file)
@@ -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);