From: <vo...@us...> - 2007-12-26 18:22:18
|
Revision: 490 http://opde.svn.sourceforge.net/opde/?rev=490&view=rev Author: volca Date: 2007-12-26 10:22:22 -0800 (Wed, 26 Dec 2007) Log Message: ----------- Safer link object creation Modified Paths: -------------- trunk/src/bindings/LinkServiceBinder.h Modified: trunk/src/bindings/LinkServiceBinder.h =================================================================== --- trunk/src/bindings/LinkServiceBinder.h 2007-12-26 18:21:53 UTC (rev 489) +++ trunk/src/bindings/LinkServiceBinder.h 2007-12-26 18:22:22 UTC (rev 490) @@ -60,18 +60,21 @@ }; // ------------------------------- - inline PyObject* LinkPtrToPyObject(LinkPtr link) { + inline PyObject* LinkPtrToPyObject(LinkPtr& link) { // We'll create a dict to store all the values. - - PyObject* base = PyDict_New(); - - // Enrich the object with items. - PyDict_SetItem(base, PyString_FromString("id"), PyLong_FromLong(link->id())); - PyDict_SetItem(base, PyString_FromString("src"), PyLong_FromLong(link->src())); - PyDict_SetItem(base, PyString_FromString("dst"), PyLong_FromLong(link->dst())); - PyDict_SetItem(base, PyString_FromString("flavor"), PyLong_FromLong(link->flavor())); - - return base; + if (!link.isNull()) { + PyObject* base = PyDict_New(); + + PyDict_SetItem(base, PyString_FromString("id"), PyLong_FromLong(link->id())); + PyDict_SetItem(base, PyString_FromString("src"), PyLong_FromLong(link->src())); + PyDict_SetItem(base, PyString_FromString("dst"), PyLong_FromLong(link->dst())); + PyDict_SetItem(base, PyString_FromString("flavor"), PyLong_FromLong(link->flavor())); + + return base; + } else { + Py_INCREF(Py_None); + return Py_None; + } } } } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |