diff options
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r-- | cpp/src/Slice/Parser.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp index 8bf98da1995..75710f0c86a 100644 --- a/cpp/src/Slice/Parser.cpp +++ b/cpp/src/Slice/Parser.cpp @@ -4269,7 +4269,14 @@ Slice::Operation::mode() const Operation::Mode Slice::Operation::sendMode() const { - return _sendMode; + if(_mode == Operation::Idempotent && hasMetaData("nonmutating")) + { + return Operation::Nonmutating; + } + else + { + return _mode; + } } ParamDeclPtr @@ -4569,14 +4576,8 @@ Slice::Operation::Operation(const ContainerPtr& container, Contained(container, name), Container(container->unit()), _returnType(returnType), - _mode(mode), - _sendMode(mode) + _mode(mode) { - if(_sendMode == Operation::Idempotent && hasMetaData("nonmutating")) - { - _sendMode = Operation::Nonmutating; - } - if(_unit->profile() == IceE) { ClassDefPtr cl = ClassDefPtr::dynamicCast(this->container()); |