diff options
Diffstat (limited to 'py/modules/IcePy/ObjectAdapter.cpp')
-rw-r--r-- | py/modules/IcePy/ObjectAdapter.cpp | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/py/modules/IcePy/ObjectAdapter.cpp b/py/modules/IcePy/ObjectAdapter.cpp index a055e56cbc2..a42dcc45357 100644 --- a/py/modules/IcePy/ObjectAdapter.cpp +++ b/py/modules/IcePy/ObjectAdapter.cpp @@ -818,6 +818,12 @@ adapterRemove(ObjectAdapterObject* self, PyObject* args) return NULL; } + if(!obj) + { + Py_INCREF(Py_None); + return Py_None; + } + ServantWrapperPtr wrapper = ServantWrapperPtr::dynamicCast(obj); assert(wrapper); return wrapper->getObject(); @@ -855,6 +861,12 @@ adapterRemoveFacet(ObjectAdapterObject* self, PyObject* args) return NULL; } + if(!obj) + { + Py_INCREF(Py_None); + return Py_None; + } + ServantWrapperPtr wrapper = ServantWrapperPtr::dynamicCast(obj); assert(wrapper); return wrapper->getObject(); @@ -942,6 +954,12 @@ adapterFind(ObjectAdapterObject* self, PyObject* args) return NULL; } + if(!obj) + { + Py_INCREF(Py_None); + return Py_None; + } + ServantWrapperPtr wrapper = ServantWrapperPtr::dynamicCast(obj); assert(wrapper); return wrapper->getObject(); @@ -979,6 +997,12 @@ adapterFindFacet(ObjectAdapterObject* self, PyObject* args) return NULL; } + if(!obj) + { + Py_INCREF(Py_None); + return Py_None; + } + ServantWrapperPtr wrapper = ServantWrapperPtr::dynamicCast(obj); assert(wrapper); return wrapper->getObject(); @@ -1062,6 +1086,12 @@ adapterFindByProxy(ObjectAdapterObject* self, PyObject* args) return NULL; } + if(!obj) + { + Py_INCREF(Py_None); + return Py_None; + } + ServantWrapperPtr wrapper = ServantWrapperPtr::dynamicCast(obj); assert(wrapper); return wrapper->getObject(); @@ -1122,6 +1152,12 @@ adapterFindServantLocator(ObjectAdapterObject* self, PyObject* args) return NULL; } + if(!locator) + { + Py_INCREF(Py_None); + return Py_None; + } + ServantLocatorWrapperPtr wrapper = ServantLocatorWrapperPtr::dynamicCast(locator); assert(wrapper); return wrapper->getObject(); |