diff options
author | Jose <jose@zeroc.com> | 2018-07-25 13:55:36 +0200 |
---|---|---|
committer | Jose <jose@zeroc.com> | 2018-07-26 11:56:31 +0200 |
commit | e2a126d95892f5eb786160c90a16cd6797c846f8 (patch) | |
tree | 0f68ce067bb6bb880ba0cdde87ca2d3b08d3921a /cpp/src/Slice/Parser.cpp | |
parent | Remove workaround for Travis CI build vanishing (diff) | |
download | ice-e2a126d95892f5eb786160c90a16cd6797c846f8.tar.bz2 ice-e2a126d95892f5eb786160c90a16cd6797c846f8.tar.xz ice-e2a126d95892f5eb786160c90a16cd6797c846f8.zip |
Do not sort generated functions alphabetical
Fixes #39
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r-- | cpp/src/Slice/Parser.cpp | 22 |
1 files changed, 17 insertions, 5 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; } |