summaryrefslogtreecommitdiff
path: root/cpp
diff options
context:
space:
mode:
authorJose <jose@zeroc.com>2018-07-25 13:55:36 +0200
committerJose <jose@zeroc.com>2018-07-26 11:56:31 +0200
commite2a126d95892f5eb786160c90a16cd6797c846f8 (patch)
tree0f68ce067bb6bb880ba0cdde87ca2d3b08d3921a /cpp
parentRemove workaround for Travis CI build vanishing (diff)
downloadice-e2a126d95892f5eb786160c90a16cd6797c846f8.tar.bz2
ice-e2a126d95892f5eb786160c90a16cd6797c846f8.tar.xz
ice-e2a126d95892f5eb786160c90a16cd6797c846f8.zip
Do not sort generated functions alphabetical
Fixes #39
Diffstat (limited to 'cpp')
-rw-r--r--cpp/src/Slice/Parser.cpp22
-rw-r--r--cpp/src/slice2cpp/Gen.cpp1
2 files changed, 17 insertions, 6 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp
index b3140e5a4ad..cdffbbea280 100644
--- a/cpp/src/Slice/Parser.cpp
+++ b/cpp/src/Slice/Parser.cpp
@@ -3989,14 +3989,26 @@ Slice::ClassDef::operations() const
OperationList
Slice::ClassDef::allOperations() const
{
- OperationList result = operations();
- result.sort();
- result.unique();
+ OperationList result;
for(ClassList::const_iterator p = _bases.begin(); p != _bases.end(); ++p)
{
OperationList li = (*p)->allOperations();
- result.merge(li);
- result.unique();
+ for(OperationList::const_iterator q = li.begin(); q != li.end(); ++q)
+ {
+ if(find(result.begin(), result.end(), *q) == result.end())
+ {
+ result.push_back(*q);
+ }
+ }
+ }
+
+ OperationList li = operations();
+ for(OperationList::const_iterator q = li.begin(); q != li.end(); ++q)
+ {
+ if(find(result.begin(), result.end(), *q) == result.end())
+ {
+ result.push_back(*q);
+ }
}
return result;
}
diff --git a/cpp/src/slice2cpp/Gen.cpp b/cpp/src/slice2cpp/Gen.cpp
index 874d37db47f..c06fd88c76c 100644
--- a/cpp/src/slice2cpp/Gen.cpp
+++ b/cpp/src/slice2cpp/Gen.cpp
@@ -1065,7 +1065,6 @@ Slice::Gen::generate(const UnitPtr& p)
implH << _include << '/';
}
implH << _base << "." << _headerExtension << ">";
- implH << nl << "//base";
writeExtraHeaders(implC);
implC << "\n#include <";