Jeremy Moles wrote: > [...] What I'm trying > now is the following: > > PyObject* obj = _PyObject_New(&PyType_MyType); > obj = PyObject_Init(obj, &PyType_MyType); > > ... > > return obj; > > When "obj" gets back to the interpreter, Python sees it (or rather, it's > __repr__) in accordance with what it "should" be. However, any attempt > to USE the object results in a segfault. I feel my problem is simply > that I'm not allocating "obj" correctly in the C++ function. > > If anyone has any advice, I would really appreciate it.
When I looked for info on this, I didn't find any good documentation, either. I'm currently using code like the following in pysqlite (http://initd.org/tracker/pysqlite/browser/pysqlite/trunk/src/connection.c?rev=154): 126 if (factory == NULL) { 127 factory = (PyObject*)&CursorType; 128 } 129 130 cursor = PyObject_CallFunction(factory, "O", self); So, basically I'm just calling the type like any other callable object. I don't remember if there was a reason why I didn't use PyObject_CallObject instead, at the time ... In any case, this approach worked fine for me. -- Gerhard -- http://mail.python.org/mailman/listinfo/python-list