static PyObject *wrap_doStuff(PyObject *self, PyObject *args) { // this will store the result in a Python object PyObject *finalResult;
// get arguments from Python char *result = 0; char *in= 0; char *aString = 0; char *bString = 0; MY_NUM *a; MY_NUM *b; int ok = PyArg_ParseTuple(args, "sss", &in, &aString, &bString); if (!ok) return 0; // do work to get a and b // count - returns an int; GetVal - returns a char * a = GetVal(aString, count(aString, ",")); b = GetVal(bString, count(bString, ",")); // make function call, which returns a char * result = doStuff(in, a, b); // save result in Python string finalResult = PyString_FromString(result); // free memory PyMem_Free(result); PyMem_Free(a); PyMem_Free(b); // return the result as a Python string return finalResult; } ...from python I can call this function 4 times...works fine. WHen I call it for the fifth time python.exe crashes. im thinking some memory problem in the wrapper function perhaps...but I am not sure. The actually C function, doStuff can be called 5, 6,7...N times without a problem so i know its gotta be my wrapper. Any ideas? Thanks! -- http://mail.python.org/mailman/listinfo/python-list