summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cpp/Gen.cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2011-03-14 15:17:58 +0100
committerJose <jose@zeroc.com>2011-03-14 15:17:58 +0100
commit223f487efb87e4284818c068056917a679ebbe6b (patch)
tree84b0837f53810ec62a077f5a84b858247e1a8fe8 /cpp/src/slice2cpp/Gen.cpp
parent4800 - add test for environment variable substitution in IceGrid descriptor (diff)
downloadice-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/Gen.cpp')
-rw-r--r--cpp/src/slice2cpp/Gen.cpp11
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;
}