Fixed order of fields serialization according to Google Protobuf's requirements

This commit is contained in:
dsavvinov
2016-07-15 17:03:52 +03:00
parent 86f65d6a6a
commit f6790e43ae
@@ -6,6 +6,7 @@
#include <iostream>
#include "kotlin_enum_generator.h"
#include "kotlin_field_generator.h"
#include <algorithm>
namespace google {
namespace protobuf {
@@ -95,7 +96,15 @@ ClassGenerator::ClassGenerator(Descriptor const *descriptor)
enumsDeclaraions.push_back(new EnumGenerator(nestedEnumDescriptor));
}
/**
* Sort properties in ascending order on their tag numbers. This order
* affects order of serialization and deserialization, thus fields will be
* serialized in order of their tags, as demanded by Google
*/
std::sort(properties.begin(), properties.end(),
[](FieldGenerator const * first, FieldGenerator const * second) {
return first->fieldNumber < second->fieldNumber;
});
}
ClassGenerator::~ClassGenerator() {