From: Mark E. <ma...@mp...> - 2010-05-24 14:46:45
|
On Fri, 2010-05-21 at 09:45 +0200, Haoyu Bai wrote: > On Tue, May 11, 2010 at 2:00 AM, Mark Ellis <ma...@mp...> wrote: > > Hi All > > > > I have encountered a problem which seems to have occurred between swig > > 1.3.36 and 1.3.40, though by other accounts probably in 1.3.37. > > > > The opensync library generates a python wrapper using swig. The part of > > the interface file causing the problem is the constructor of a wrapper > > around a C struct. > > > > %extend OSyncChange { > > OSyncChange(PyObject *obj=NULL) { > > OSyncChange *change = NULL; > > if (obj) > > change = (OSyncChange *)PyCObject_AsVoidPtr(obj); > > else > > change = osync_change_new(); > > return change; > > } > > > > Hi, > > I would suggest to change the if(obj) to if(obj && obj!=Py_None). As > Py_None is the Python equivalent of NULL, so the conversation of NULL > -> None should be reasonable at here? > Yep, that certainly works around the problem, many thanks. I would suggest from a longer term swig perspective though that this behaviour appears a bit broken. Thanks again. Mark |