Matt Knox wrote: > > Hi there. I'm in the unfortunate situation of trying to track down a > memory error in someone elses code, and to make matters worse I don't > really know jack squat about C programming. The problem seems to arise > when several numpy arrays are created from C arrays in the C api and > returned to python, and then trying to print out or cast to a string > the resulting array. I think the problem may be happening due to the > following chunk of code: > { > PyObject* temp = PyArray_SimpleNewFromData(1, &numobjs, typeNum, > dbValues); > PyObject* temp2 = PyArray_FromArray((PyArrayObject*)temp, > ((PyArrayObject*)temp)->descr, DEFAULT_FLAGS | ENSURECOPY); > Py_DECREF(temp); > PyDict_SetItemString(returnVal, "data", temp2); > Py_DECREF(temp2); > } > > Lets assume that all my other inputs up this point are fine and that > numobjs, typeNum, and dbValues are fine. Is their anything obviously > wrong with the above chunk of code? or does it appear ok? Ultimately > the dictionary "returnVal" is returned by the function this code came > from, and everything else is discarded. Any help is very greatly > appreciated. Thanks in advance,
You didn't indicate what kind of trouble you are having. First of all, this is kind of odd style. Why is a new array created from a data-pointer and then copied using PyArray_FromArray (the ENSURECOPY flag will give you a copy)? Using temp2 = PyArray_Copy(temp) seems simpler. This will also avoid the reference-count problem that is currently happening in the PyArray_FromArray call on the descr structure. Any array-creation function that takes a descr structure "steals" a reference to it, so you need to increment the reference count if you are passing an unowned reference to a ->descr structure. -Travis ------------------------------------------------------------------------- Using Tomcat but need to do more? Need to support web services, security? Get stuff done quickly with pre-integrated technology to make your job easier Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________ Numpy-discussion mailing list Numpy-discussion@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/numpy-discussion