diff options
Diffstat (limited to 'cpp/src/Slice/Parser.cpp')
-rw-r--r-- | cpp/src/Slice/Parser.cpp | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/cpp/src/Slice/Parser.cpp b/cpp/src/Slice/Parser.cpp index 3f49a5d84a3..c36bbd38cee 100644 --- a/cpp/src/Slice/Parser.cpp +++ b/cpp/src/Slice/Parser.cpp @@ -1756,13 +1756,22 @@ Slice::Container::sort() } void -Slice::Container::sortContents() +Slice::Container::sortContents(bool sortFields) { for(ContainedList::const_iterator p = _contents.begin(); p != _contents.end(); ++p) { ContainerPtr container = ContainerPtr::dynamicCast(*p); if(container) { + if(!sortFields) + { + if(StructPtr::dynamicCast(container) || + ClassDefPtr::dynamicCast(container) || + ExceptionPtr::dynamicCast(container)) + { + continue; + } + } // // Don't sort operation definitions, otherwise parameters are shown in the // wrong order in the synopsis. @@ -1771,7 +1780,7 @@ Slice::Container::sortContents() { container->sort(); } - container->sortContents(); + container->sortContents(sortFields); } } } |