File: | source/IoPython.c |
Function: | IoPython_import |
Error: | ob_refcnt of '*pModule' is 1 too high |
232 */
233 IoObject *IoPython_import(IoPython *self, IoObject *locals, IoMessage *m)
234 {
235 IoSeq *name = IoMessage_locals_seqArgAt_(m, locals, 0);
236 char *nameString = IoSeq_asCString(name);
237
238 PyObject *pName, *pModule;
239 pName = PyString_FromString(nameString);
when treating unknown char * from source/IoPython.c:236 as non-NULL
when PyString_FromString() succeeds
240 /* Error checking of pName left out */
241
242 pModule = PyImport_Import(pName);
when PyImport_Import() succeeds
new ref from (unknown) PyImport_Import allocated at: pModule = PyImport_Import(pName);
ob_refcnt is now refs: 1 + N where N >= 0
243
244 if(!pModule) {
taking False path
245 fprintf(stderr, "Could not find module %s\n", nameString);
246 return IONIL(self);
247 }
248
249 // Set slots (for easier introspection and use from io)
250 /*
251 PyObject *dict = PyModule_GetDict(pModule);
252 PyObject *keys = PyDict_Keys(dict);
253 int i;
254 for(i = 0;i<PyList_Size(keys);i++) {
255 PyObject *key = PyList_GetItem(keys, i);
256 PyObject *value = PyDict_GetItem(dict, key);
257 // TODO: Not allowed method vall IoSeq_newSymbolWithCString_
258 if(!PyCallable_Check(value)) {// don't want methods blocking the forward
259 IoObject_setSlot_to_(self, IOSYMBOL(PyString_AsString(key)), convertPy(self, value));
260 }
261 }
262 */
263 //
264
265 Py_DECREF(pName);
when taking True path
266
267 // Now, we've got the module. Wrap it and return it.
268 return wrap(self, pModule);
269 }
ob_refcnt of '*pModule' is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1
found 1 similar trace(s) to this
File: | source/IoPython.c |
Function: | IoPython_import |
Error: | ob_refcnt of '*pName' is 1 too high |
232 */
233 IoObject *IoPython_import(IoPython *self, IoObject *locals, IoMessage *m)
234 {
235 IoSeq *name = IoMessage_locals_seqArgAt_(m, locals, 0);
236 char *nameString = IoSeq_asCString(name);
237
238 PyObject *pName, *pModule;
239 pName = PyString_FromString(nameString);
when treating unknown char * from source/IoPython.c:236 as non-NULL
when PyString_FromString() succeeds
PyStringObject allocated at: pName = PyString_FromString(nameString);
ob_refcnt is now refs: 1 + N where N >= 0
240 /* Error checking of pName left out */
241
242 pModule = PyImport_Import(pName);
when PyImport_Import() fails
243
244 if(!pModule) {
taking True path
245 fprintf(stderr, "Could not find module %s\n", nameString);
246 return IONIL(self);
when treating unknown struct IoPython * from source/IoPython.c:233 as non-NULL
when treating unknown struct IoObjectData * from source/IoPython.c:246 as non-NULL
when treating unknown struct IoTag * from source/IoPython.c:246 as non-NULL
when treating unknown void * from source/IoPython.c:246 as non-NULL
247 }
248
249 // Set slots (for easier introspection and use from io)
250 /*
251 PyObject *dict = PyModule_GetDict(pModule);
252 PyObject *keys = PyDict_Keys(dict);
253 int i;
254 for(i = 0;i<PyList_Size(keys);i++) {
255 PyObject *key = PyList_GetItem(keys, i);
256 PyObject *value = PyDict_GetItem(dict, key);
257 // TODO: Not allowed method vall IoSeq_newSymbolWithCString_
258 if(!PyCallable_Check(value)) {// don't want methods blocking the forward
259 IoObject_setSlot_to_(self, IOSYMBOL(PyString_AsString(key)), convertPy(self, value));
260 }
261 }
262 */
263 //
264
265 Py_DECREF(pName);
266
267 // Now, we've got the module. Wrap it and return it.
268 return wrap(self, pModule);
269 }
ob_refcnt of '*pName' is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1
File: | source/IoPython.c |
Function: | IoPython_import |
Error: | dereferencing NULL (pName->ob_refcnt) at source/IoPython.c:265 |
232 */
233 IoObject *IoPython_import(IoPython *self, IoObject *locals, IoMessage *m)
234 {
235 IoSeq *name = IoMessage_locals_seqArgAt_(m, locals, 0);
236 char *nameString = IoSeq_asCString(name);
237
238 PyObject *pName, *pModule;
239 pName = PyString_FromString(nameString);
when treating unknown char * from source/IoPython.c:236 as non-NULL
when PyString_FromString() fails
240 /* Error checking of pName left out */
241
242 pModule = PyImport_Import(pName);
when PyImport_Import() succeeds
243
244 if(!pModule) {
taking False path
245 fprintf(stderr, "Could not find module %s\n", nameString);
246 return IONIL(self);
247 }
248
249 // Set slots (for easier introspection and use from io)
250 /*
251 PyObject *dict = PyModule_GetDict(pModule);
252 PyObject *keys = PyDict_Keys(dict);
253 int i;
254 for(i = 0;i<PyList_Size(keys);i++) {
255 PyObject *key = PyList_GetItem(keys, i);
256 PyObject *value = PyDict_GetItem(dict, key);
257 // TODO: Not allowed method vall IoSeq_newSymbolWithCString_
258 if(!PyCallable_Check(value)) {// don't want methods blocking the forward
259 IoObject_setSlot_to_(self, IOSYMBOL(PyString_AsString(key)), convertPy(self, value));
260 }
261 }
262 */
263 //
264
265 Py_DECREF(pName);
dereferencing NULL (pName->ob_refcnt) at source/IoPython.c:265
266
267 // Now, we've got the module. Wrap it and return it.
268 return wrap(self, pModule);
269 }