summaryrefslogtreecommitdiff
path: root/cpp/src
diff options
context:
space:
mode:
authorBernard Normier <bernard@zeroc.com>2019-11-03 11:06:24 -0500
committerGitHub <noreply@github.com>2019-11-03 11:06:24 -0500
commit3981787ebd09050d461b7dad7c66d040b06abc0a (patch)
tree1eceacb4d90e9ef153f0d8e5fa4fa2c1b8940ffe /cpp/src
parentFixed dependency of ice-test.xcodeproj to not depend on carthage (diff)
downloadice-3981787ebd09050d461b7dad7c66d040b06abc0a.tar.bz2
ice-3981787ebd09050d461b7dad7c66d040b06abc0a.tar.xz
ice-3981787ebd09050d461b7dad7c66d040b06abc0a.zip
Move response, error and sent functions given to the client Async API (#610)
instead of copying them.
Diffstat (limited to 'cpp/src')
-rw-r--r--cpp/src/slice2cpp/Gen.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index ce8b0c040a2..49e0e1f3eff 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -7194,7 +7194,10 @@ Slice::Gen::Cpp11ProxyVisitor::visitOperation(const OperationPtr& p)
H << nl << "return _makeLamdaOutgoing<" << futureT << ">" << spar;
- H << (futureOutParams.size() > 1 ? "_responseCb" : responseParam) << exParam << sentParam << "this";
+ H << "std::move(" + (futureOutParams.size() > 1 ? "_responseCb" : responseParam) + ")"
+ << "std::move(" + exParam + ")"
+ << "std::move(" + sentParam + ")"
+ << "this";
H << string("&" + getUnqualified(scoped, clScope.substr(2)) + "_iceI_" + name);
for(ParamDeclList::const_iterator q = inParams.begin(); q != inParams.end(); ++q)
{