diff options
author | Mark Spruiell <mes@zeroc.com> | 2011-05-04 17:51:35 -0700 |
---|---|---|
committer | Mark Spruiell <mes@zeroc.com> | 2011-05-04 17:51:35 -0700 |
commit | 9afd50c19bceeb2be64bf0c7c6d7a0c2c126dde8 (patch) | |
tree | 44786ffd2f2bf17f6872f97ea109cb09243d9cf9 /py/modules/IcePy/Operation.cpp | |
parent | minor doc fixes for RHEL (diff) | |
download | ice-9afd50c19bceeb2be64bf0c7c6d7a0c2c126dde8.tar.bz2 ice-9afd50c19bceeb2be64bf0c7c6d7a0c2c126dde8.tar.xz ice-9afd50c19bceeb2be64bf0c7c6d7a0c2c126dde8.zip |
bug 4976 - inconsistent operation mode for pseudo ops
Diffstat (limited to 'py/modules/IcePy/Operation.cpp')
-rw-r--r-- | py/modules/IcePy/Operation.cpp | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/py/modules/IcePy/Operation.cpp b/py/modules/IcePy/Operation.cpp index 71a081e6e7c..c787f53c9e3 100644 --- a/py/modules/IcePy/Operation.cpp +++ b/py/modules/IcePy/Operation.cpp @@ -71,6 +71,7 @@ public: string dispatchName; bool sendsClasses; bool returnsClasses; + bool pseudoOp; private: @@ -1055,6 +1056,11 @@ IcePy::Operation::Operation(const char* n, PyObject* m, PyObject* sm, int amdFla { exceptions.push_back(getException(PyTuple_GET_ITEM(ex, i))); } + + // + // Does the operation name start with "ice_"? + // + pseudoOp = name.find("ice_") == 0; } void @@ -3695,7 +3701,13 @@ IcePy::TypedServantWrapper::ice_invoke_async(const Ice::AMD_Object_ice_invokePtr } } - __checkMode(op->mode, current.mode); + // + // See bug 4976. + // + if(!op->pseudoOp) + { + __checkMode(op->mode, current.mode); + } UpcallPtr up = new TypedUpcall(op, cb, current.adapter->getCommunicator()); up->dispatch(_servant, inParams, current); |