summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2008-12-30 17:27:45 +0100
committerJose <jose@zeroc.com>2008-12-30 17:27:45 +0100
commit1427930866fc6d5d08fc572a13a37e023b5b0ff6 (patch)
tree60afd6848c8580cf188f79fa51dbcc4903e9b678 /cpp/src
parentNrvo demo fixes (diff)
downloadice-1427930866fc6d5d08fc572a13a37e023b5b0ff6.tar.bz2
ice-1427930866fc6d5d08fc572a13a37e023b5b0ff6.tar.xz
ice-1427930866fc6d5d08fc572a13a37e023b5b0ff6.zip
Fix 3619 - Generated code for IceDelegateM not support gcc NRVO optimization
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/slice2cpp/Gen.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index 0d7747e0879..e06977b4ed0 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -2624,6 +2624,7 @@ Slice::Gen::DelegateMVisitor::visitOperation(const OperationPtr& p)
}
C << nl << "bool __ok = __og.invoke();";
+ writeAllocateCode(C, ParamDeclList(), ret, p->getMetaData(), _useWstring);
if(!p->returnsData())
{
C << nl << "if(!__og.is()->b.empty())";
@@ -2687,7 +2688,6 @@ Slice::Gen::DelegateMVisitor::visitOperation(const OperationPtr& p)
C << eb;
C << eb;
- writeAllocateCode(C, ParamDeclList(), ret, p->getMetaData(), _useWstring);
for(ParamDeclList::const_iterator opi = outParams.begin(); opi != outParams.end(); ++opi)
{
StructPtr st = StructPtr::dynamicCast((*opi)->type());