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

Reply via email to