summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorDwayne Boone <dwayne@zeroc.com>2015-02-23 10:44:27 -0330
committerDwayne Boone <dwayne@zeroc.com>2015-02-23 10:44:27 -0330
commit043fc8f6a2a686d5a3f75fb1fa157c9c56b36f90 (patch)
tree738012d132dea9aa6c4145035b703896e3c7770e /cpp
parentUpdate default location of third party packages in OS X (diff)
downloadice-043fc8f6a2a686d5a3f75fb1fa157c9c56b36f90.tar.bz2
ice-043fc8f6a2a686d5a3f75fb1fa157c9c56b36f90.tar.xz
ice-043fc8f6a2a686d5a3f75fb1fa157c9c56b36f90.zip
ICE-5814 fixed gcc compile errors
Diffstat (limited to 'cpp')
-rw-r--r--cpp/include/Slice/CPlusPlusUtil.h11
-rw-r--r--cpp/src/Slice/CPlusPlusUtil.cpp10
-rw-r--r--cpp/src/slice2cpp/Gen.cpp22
3 files changed, 23 insertions, 20 deletions
diff --git a/cpp/include/Slice/CPlusPlusUtil.h b/cpp/include/Slice/CPlusPlusUtil.h
index a5d42eb91cd..9338bfe32cd 100644
--- a/cpp/include/Slice/CPlusPlusUtil.h
+++ b/cpp/include/Slice/CPlusPlusUtil.h
@@ -17,6 +17,7 @@ namespace Slice
{
SLICE_API extern FeatureProfile featureProfile;
+SLICE_API extern std::string paramPrefix;
struct ToIfdef
{
@@ -47,13 +48,13 @@ SLICE_API std::string fixKwd(const std::string&);
SLICE_API void writeMarshalUnmarshalCode(::IceUtilInternal::Output&, const TypePtr&, bool, int, const std::string&,
bool, const StringList& = StringList(), int = 0, const std::string& = "",
bool = true);
-
-SLICE_API void writeMarshalCode(::IceUtilInternal::Output&, const ParamDeclList&, const OperationPtr&, bool prepend, int = 0);
-SLICE_API void writeUnmarshalCode(::IceUtilInternal::Output&, const ParamDeclList&, const OperationPtr&, bool prepend, int = 0);
-SLICE_API void writeAllocateCode(::IceUtilInternal::Output&, const ParamDeclList&, const OperationPtr&, bool prepend, int = 0);
+
+SLICE_API void writeMarshalCode(::IceUtilInternal::Output&, const ParamDeclList&, const OperationPtr&, bool, int = 0);
+SLICE_API void writeUnmarshalCode(::IceUtilInternal::Output&, const ParamDeclList&, const OperationPtr&, bool, int = 0);
+SLICE_API void writeAllocateCode(::IceUtilInternal::Output&, const ParamDeclList&, const OperationPtr&, bool, int = 0);
SLICE_API std::string getEndArg(const TypePtr&, const StringList&, const std::string&);
-SLICE_API void writeEndCode(::IceUtilInternal::Output&, const ParamDeclList&, const OperationPtr&);
+SLICE_API void writeEndCode(::IceUtilInternal::Output&, const ParamDeclList&, const OperationPtr&, bool = false);
SLICE_API std::string findMetaData(const StringList&, int = 0);
SLICE_API bool inWstringModule(const SequencePtr&);
diff --git a/cpp/src/Slice/CPlusPlusUtil.cpp b/cpp/src/Slice/CPlusPlusUtil.cpp
index e04291a02ee..95b34a2ec66 100644
--- a/cpp/src/Slice/CPlusPlusUtil.cpp
+++ b/cpp/src/Slice/CPlusPlusUtil.cpp
@@ -297,7 +297,7 @@ writeParamEndCode(Output& out, const TypePtr& type, bool optional, const string&
void
writeMarshalUnmarshalParams(Output& out, const ParamDeclList& params, const OperationPtr& op, bool marshal, bool prepend, int typeCtx)
{
- string prefix = prepend ? "__p_" : "";
+ string prefix = prepend ? paramPrefix : "";
//
// Marshal non optional parameters.
@@ -361,6 +361,7 @@ writeMarshalUnmarshalParams(Output& out, const ParamDeclList& params, const Oper
}
Slice::FeatureProfile Slice::featureProfile = Slice::Ice;
+string Slice::paramPrefix = "__p_";
char
Slice::ToIfdef::operator()(char c)
@@ -948,7 +949,7 @@ Slice::writeUnmarshalCode(Output& out, const ParamDeclList& params, const Operat
void
Slice::writeAllocateCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend, int typeCtx)
{
- string prefix = prepend ? "__p_" : "";
+ string prefix = prepend ? paramPrefix : "";
for(ParamDeclList::const_iterator p = params.begin(); p != params.end(); ++p)
{
writeParamAllocateCode(out, (*p)->type(), (*p)->optional(), fixKwd(prefix + (*p)->name()), (*p)->getMetaData(),
@@ -1004,11 +1005,12 @@ Slice::getEndArg(const TypePtr& type, const StringList& metaData, const string&
}
void
-Slice::writeEndCode(Output& out, const ParamDeclList& params, const OperationPtr& op)
+Slice::writeEndCode(Output& out, const ParamDeclList& params, const OperationPtr& op, bool prepend)
{
+ string prefix = prepend ? paramPrefix : "";
for(ParamDeclList::const_iterator p = params.begin(); p != params.end(); ++p)
{
- writeParamEndCode(out, (*p)->type(), (*p)->optional(), fixKwd((*p)->name()), (*p)->getMetaData());
+ writeParamEndCode(out, (*p)->type(), (*p)->optional(), fixKwd(prefix + (*p)->name()), (*p)->getMetaData());
}
if(op && op->returnType())
{
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index 9e0e6b022da..02f1eb94d77 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -1730,7 +1730,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
for(ParamDeclList::const_iterator q = paramList.begin(); q != paramList.end(); ++q)
{
- string paramName = fixKwd((*q)->name());
+ string paramName = fixKwd(paramPrefix + (*q)->name());
StringList metaData = (*q)->getMetaData();
string typeString;
@@ -2075,7 +2075,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
C << nl << "try";
C << sb;
C << nl<< "::IceInternal::BasicStream* __os = __og.startWriteParams(" << opFormatTypeToString(p) << ");";
- writeMarshalCode(C, inParams, 0, false, TypeContextInParam);
+ writeMarshalCode(C, inParams, 0, true, TypeContextInParam);
if(p->sendsClasses(false))
{
C << nl << "__os->writePendingObjects();";
@@ -2152,9 +2152,9 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
if(ret || !outParams.empty())
{
- writeAllocateCode(C, ParamDeclList(), p, false, _useWstring);
+ writeAllocateCode(C, ParamDeclList(), p, true, _useWstring);
C << nl << "::IceInternal::BasicStream* __is = __og.startReadParams();";
- writeUnmarshalCode(C, outParams, p, false);
+ writeUnmarshalCode(C, outParams, p, true);
if(p->returnsClasses(false))
{
C << nl << "__is->readPendingObjects();";
@@ -2189,7 +2189,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
else
{
C << nl << "::IceInternal::BasicStream* __os = __result->startWriteParams(" << opFormatTypeToString(p) <<");";
- writeMarshalCode(C, inParams, 0, false, TypeContextInParam);
+ writeMarshalCode(C, inParams, 0, true, TypeContextInParam);
if(p->sendsClasses(false))
{
C << nl << "__os->writePendingObjects();";
@@ -2268,7 +2268,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
C << sb;
C << nl << clScope << clName << "Prx __proxy = " << clScope << clName
<< "Prx::uncheckedCast(__result->getProxy());";
- writeAllocateCode(C, outParams, p, false, _useWstring | TypeContextInParam | TypeContextAMICallPrivateEnd);
+ writeAllocateCode(C, outParams, p, true, _useWstring | TypeContextInParam | TypeContextAMICallPrivateEnd);
C << nl << "try";
C << sb;
C << nl;
@@ -2289,7 +2289,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
}
C << "__result" << epar << ';';
}
- writeEndCode(C, outParams, p);
+ writeEndCode(C, outParams, p, true);
C << eb;
C << nl << "catch(const ::Ice::Exception& ex)";
C << sb;
@@ -2352,7 +2352,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
// access violations errors with the test/Ice/slicing/objects test on VC9
// and Windows 64 bits when compiled with optimization (see bug 4400).
//
- writeAllocateCode(C, ParamDeclList(), p, false, _useWstring | TypeContextAMIEnd);
+ writeAllocateCode(C, ParamDeclList(), p, true, _useWstring | TypeContextAMIEnd);
C << nl << "if(!__result->__wait())";
C << sb;
C << nl << "try";
@@ -2386,7 +2386,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
if(ret || !outParams.empty())
{
C << nl << "::IceInternal::BasicStream* __is = __result->__startReadParams();";
- writeUnmarshalCode(C, outParams, p, false, _useWstring | TypeContextAMIEnd);
+ writeUnmarshalCode(C, outParams, p, true, _useWstring | TypeContextAMIEnd);
if(p->returnsClasses(false))
{
C << nl << "__is->readPendingObjects();";
@@ -2449,7 +2449,7 @@ Slice::Gen::ProxyVisitor::visitOperation(const OperationPtr& p)
if(ret || !outParams.empty())
{
C << nl << "::IceInternal::BasicStream* __is = __result->__startReadParams();";
- writeUnmarshalCode(C, outParams, p, false, _useWstring | TypeContextAMIPrivateEnd);
+ writeUnmarshalCode(C, outParams, p, true, _useWstring | TypeContextAMIPrivateEnd);
if(p->returnsClasses(false))
{
C << nl << "__is->readPendingObjects();";
@@ -3408,7 +3408,7 @@ Slice::Gen::ObjectVisitor::visitOperation(const OperationPtr& p)
vector< string> outDecls;
for(ParamDeclList::iterator q = paramList.begin(); q != paramList.end(); ++q)
{
- string paramName = fixKwd(string("__p_") + (*q)->name());
+ string paramName = fixKwd(string(paramPrefix) + (*q)->name());
TypePtr type = (*q)->type();
bool isOutParam = (*q)->isOutParam();
string typeString;