diff options
author | Jose <jose@zeroc.com> | 2011-03-14 15:17:58 +0100 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2011-03-14 15:17:58 +0100 |
commit | 223f487efb87e4284818c068056917a679ebbe6b (patch) | |
tree | 84b0837f53810ec62a077f5a84b858247e1a8fe8 /cpp/src/slice2cpp | |
parent | 4800 - add test for environment variable substitution in IceGrid descriptor (diff) | |
download | ice-223f487efb87e4284818c068056917a679ebbe6b.tar.bz2 ice-223f487efb87e4284818c068056917a679ebbe6b.tar.xz ice-223f487efb87e4284818c068056917a679ebbe6b.zip |
4815 - out["cpp:array"] generates C++ doesn't compile.
Diffstat (limited to 'cpp/src/slice2cpp')
-rw-r--r-- | cpp/src/slice2cpp/Gen.cpp | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp index a20ab684b07..03c5b30210f 100644 --- a/cpp/src/slice2cpp/Gen.cpp +++ b/cpp/src/slice2cpp/Gen.cpp @@ -2466,7 +2466,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p) // delegate. // bool generatePrivateEnd = retS != retSEndAMI || outParamsDeclAMI != outParamsDeclEndAMI; - if(generatePrivateEnd) + if(ret && generatePrivateEnd) { string typeStringEndAMI = outputTypeToString(ret, p->getMetaData(), _useWstring | TypeContextAMIPrivateEnd); outParamsDeclEndAMI.push_back(typeStringEndAMI + ' ' + "__ret"); @@ -5445,7 +5445,12 @@ Slice::Gen::AsyncCallbackTemplateVisitor::generateOperation(const OperationPtr& } else { - H << "__proxy->___end_" << p->name() << spar << outEndArgs << retEndArg << "__result" << epar << ';'; + H << "__proxy->___end_" << p->name() << spar << outEndArgs; + if(ret) + { + H << retEndArg; + } + H << "__result" << epar << ';'; } writeEndCode(H, outParams, ret, p->getMetaData()); H << eb; @@ -7008,7 +7013,7 @@ Slice::Gen::MetaDataVisitor::validate(const SyntaxTreeBasePtr& cont, const Strin } if(SequencePtr::dynamicCast(cont)) { - if(ss.find("type:") == 0 || (inParam && (ss == "array" || ss.find("range") == 0))) + if(ss.find("type:") == 0 || ss == "array" || ss.find("range") == 0) { continue; } |