diff options
Diffstat (limited to 'py/modules/IcePy/ObjectAdapter.cpp')
-rw-r--r-- | py/modules/IcePy/ObjectAdapter.cpp | 60 |
1 files changed, 48 insertions, 12 deletions
diff --git a/py/modules/IcePy/ObjectAdapter.cpp b/py/modules/IcePy/ObjectAdapter.cpp index da0c780b1e3..22b4258b81e 100644 --- a/py/modules/IcePy/ObjectAdapter.cpp +++ b/py/modules/IcePy/ObjectAdapter.cpp @@ -672,8 +672,8 @@ adapterAddFacet(ObjectAdapterObject* self, PyObject* args) PyObject* identityType = lookupType("Ice.Identity"); PyObject* servant; PyObject* id; - char* facet; - if(!PyArg_ParseTuple(args, STRCAST("O!O!s"), objectType, &servant, identityType, &id, &facet)) + PyObject* facetObj; + if(!PyArg_ParseTuple(args, STRCAST("O!O!O"), objectType, &servant, identityType, &id, &facetObj)) { return 0; } @@ -690,6 +690,12 @@ adapterAddFacet(ObjectAdapterObject* self, PyObject* args) return 0; } + string facet; + if(!getStringArg(facetObj, "facet", facet)) + { + return 0; + } + assert(self->adapter); Ice::ObjectPrx proxy; try @@ -747,8 +753,8 @@ adapterAddFacetWithUUID(ObjectAdapterObject* self, PyObject* args) { PyObject* objectType = lookupType("Ice.Object"); PyObject* servant; - char* facet; - if(!PyArg_ParseTuple(args, STRCAST("O!s"), objectType, &servant, &facet)) + PyObject* facetObj; + if(!PyArg_ParseTuple(args, STRCAST("O!O"), objectType, &servant, &facetObj)) { return 0; } @@ -759,6 +765,12 @@ adapterAddFacetWithUUID(ObjectAdapterObject* self, PyObject* args) return 0; } + string facet; + if(!getStringArg(facetObj, "facet", facet)) + { + return 0; + } + assert(self->adapter); Ice::ObjectPrx proxy; try @@ -824,8 +836,8 @@ adapterRemoveFacet(ObjectAdapterObject* self, PyObject* args) { PyObject* identityType = lookupType("Ice.Identity"); PyObject* id; - char* facet; - if(!PyArg_ParseTuple(args, STRCAST("O!s"), identityType, &id, &facet)) + PyObject* facetObj; + if(!PyArg_ParseTuple(args, STRCAST("O!O"), identityType, &id, &facetObj)) { return 0; } @@ -836,6 +848,12 @@ adapterRemoveFacet(ObjectAdapterObject* self, PyObject* args) return 0; } + string facet; + if(!getStringArg(facetObj, "facet", facet)) + { + return 0; + } + assert(self->adapter); Ice::ObjectPtr obj; try @@ -960,8 +978,8 @@ adapterFindFacet(ObjectAdapterObject* self, PyObject* args) { PyObject* identityType = lookupType("Ice.Identity"); PyObject* id; - char* facet; - if(!PyArg_ParseTuple(args, STRCAST("O!s"), identityType, &id, &facet)) + PyObject* facetObj; + if(!PyArg_ParseTuple(args, STRCAST("O!O"), identityType, &id, &facetObj)) { return 0; } @@ -972,6 +990,12 @@ adapterFindFacet(ObjectAdapterObject* self, PyObject* args) return 0; } + string facet; + if(!getStringArg(facetObj, "facet", facet)) + { + return 0; + } + assert(self->adapter); Ice::ObjectPtr obj; try @@ -1092,14 +1116,20 @@ adapterAddServantLocator(ObjectAdapterObject* self, PyObject* args) { PyObject* locatorType = lookupType("Ice.ServantLocator"); PyObject* locator; - char* category; - if(!PyArg_ParseTuple(args, STRCAST("O!s"), locatorType, &locator, &category)) + PyObject* categoryObj; + if(!PyArg_ParseTuple(args, STRCAST("O!O"), locatorType, &locator, &categoryObj)) { return 0; } ServantLocatorWrapperPtr wrapper = new ServantLocatorWrapper(locator); + string category; + if(!getStringArg(categoryObj, "category", category)) + { + return 0; + } + assert(self->adapter); try { @@ -1121,8 +1151,14 @@ extern "C" static PyObject* adapterFindServantLocator(ObjectAdapterObject* self, PyObject* args) { - char* category; - if(!PyArg_ParseTuple(args, STRCAST("s"), &category)) + PyObject* categoryObj; + if(!PyArg_ParseTuple(args, STRCAST("O"), &categoryObj)) + { + return 0; + } + + string category; + if(!getStringArg(categoryObj, "category", category)) { return 0; } |