summaryrefslogtreecommitdiff
path: root/cpp/src/slice2cpp
diff options
context:
space:
mode:
authorJoe George <joe@zeroc.com>2016-07-11 09:17:55 -0400
committerJoe George <joe@zeroc.com>2016-07-11 09:25:01 -0400
commitef64ff67e60bf1e64d15608b96fcb4591add2426 (patch)
tree71d77ee61490e0fb213128468a910d6303b5645e /cpp/src/slice2cpp
parentUpdate to use latest Gradle Ice builder version (diff)
downloadice-ef64ff67e60bf1e64d15608b96fcb4591add2426.tar.bz2
ice-ef64ff67e60bf1e64d15608b96fcb4591add2426.tar.xz
ice-ef64ff67e60bf1e64d15608b96fcb4591add2426.zip
StreamReader/Writer improvements
- No longer generate StreamWriter partial template specialization for C++ classes/structs/exceptions which have no optional members. - Reduce generated code size for all C++11 StreamReader/Writers.
Diffstat (limited to 'cpp/src/slice2cpp')
-rw-r--r--cpp/src/slice2cpp/Gen.cpp16
1 files changed, 9 insertions, 7 deletions
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index 93c4540b8e0..e7fe5c368bb 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -4779,7 +4779,7 @@ Slice::Gen::StreamVisitor::visitClassDefStart(const ClassDefPtr& c)
{
if(!c->isLocal())
{
- writeStreamHelpers(H, true, c, c->dataMembers(), c->orderedOptionalDataMembers());
+ writeStreamHelpers(H, true, false, c, c->dataMembers());
}
return false;
}
@@ -4796,7 +4796,7 @@ Slice::Gen::StreamVisitor::visitExceptionStart(const ExceptionPtr& p)
H << nl << "static const StreamHelperCategory helper = StreamHelperCategoryUserException;";
H << eb << ";" << nl;
- writeStreamHelpers(H, true, p, p->dataMembers(), p->orderedOptionalDataMembers());
+ writeStreamHelpers(H, true, false, p, p->dataMembers());
}
return false;
}
@@ -4835,7 +4835,7 @@ Slice::Gen::StreamVisitor::visitStructStart(const StructPtr& p)
}
H << eb << ";" << nl;
- writeStreamHelpers(H, true, p, p->dataMembers(), DataMemberList());
+ writeStreamHelpers(H, true, false, p, p->dataMembers());
}
return false;
}
@@ -5824,8 +5824,10 @@ Slice::Gen::Cpp11TypesVisitor::visitExceptionStart(const ExceptionPtr& p)
H << sb;
H << eb;
}
- H << sp;
+ writeIceTuple(H, p->dataMembers(), _useWstring);
+
+ H << sp;
H << nl << _dllMemberExport << "static const ::std::string& ice_staticId();";
@@ -7975,7 +7977,7 @@ Slice::Gen::Cpp11StreamVisitor::visitStructStart(const StructPtr& p)
H << nl << "static const bool fixedLength = " << (p->isVariableLength() ? "false" : "true") << ";";
H << eb << ";" << nl;
- writeStreamHelpers(H, false, p, p->dataMembers());
+ writeStreamHelpers(H, false, true, p, p->dataMembers());
return false;
}
@@ -7985,7 +7987,7 @@ Slice::Gen::Cpp11StreamVisitor::visitClassDefStart(const ClassDefPtr& c)
{
if(!c->isLocal() && !c->isInterface())
{
- writeStreamHelpers(H, true, c, c->dataMembers(), c->orderedOptionalDataMembers());
+ writeStreamHelpers(H, true, true, c, c->dataMembers());
}
return false;
}
@@ -7995,7 +7997,7 @@ Slice::Gen::Cpp11StreamVisitor::visitExceptionEnd(const ExceptionPtr& p)
{
if(!p->isLocal())
{
- writeStreamHelpers(H, true, p, p->dataMembers(), p->orderedOptionalDataMembers());
+ writeStreamHelpers(H, true, true, p, p->dataMembers());
}
}