Pass version down to base classes in binary deserializer
So the behavior is consistent with readng members and with serialization. It should be fine because if the base class is versioned it won't make a difference but if it is versioned the version from the derived class can be utilized.
This commit is contained in:
parent
9c3bf01c8f
commit
60d761f7ed
|
@ -319,7 +319,7 @@ void BinarySerializationCodeGenerator::generate(std::ostream &os) const
|
||||||
}
|
}
|
||||||
os << " // read base classes\n";
|
os << " // read base classes\n";
|
||||||
for (const RelevantClass *baseClass : relevantBases) {
|
for (const RelevantClass *baseClass : relevantBases) {
|
||||||
os << " deserializer.read(static_cast<::" << baseClass->qualifiedName << " &>(customObject));\n";
|
os << " deserializer.read(static_cast<::" << baseClass->qualifiedName << " &>(customObject), version);\n";
|
||||||
}
|
}
|
||||||
os << " // read members\n";
|
os << " // read members\n";
|
||||||
for (clang::Decl *const decl : relevantClass.record->decls()) {
|
for (clang::Decl *const decl : relevantClass.record->decls()) {
|
||||||
|
|
|
@ -57,7 +57,7 @@ class BinarySerializer;
|
||||||
/// \brief Reads \a customType via \a deserializer.
|
/// \brief Reads \a customType via \a deserializer.
|
||||||
/// \remarks
|
/// \remarks
|
||||||
/// - If \tp Type is versioned, the version is determined from the data. Otherwise \a version is assumed.
|
/// - If \tp Type is versioned, the version is determined from the data. Otherwise \a version is assumed.
|
||||||
/// - The specified \a version shall be passed to nested invocations.
|
/// - The determined or specified \a version shall be passed to nested invocations.
|
||||||
/// \returns Returns the determined/assumed version.
|
/// \returns Returns the determined/assumed version.
|
||||||
template <typename Type, Traits::EnableIf<IsCustomType<Type>> * = nullptr>
|
template <typename Type, Traits::EnableIf<IsCustomType<Type>> * = nullptr>
|
||||||
BinaryVersion readCustomType(BinaryDeserializer &deserializer, Type &customType, BinaryVersion version = 0);
|
BinaryVersion readCustomType(BinaryDeserializer &deserializer, Type &customType, BinaryVersion version = 0);
|
||||||
|
|
Loading…
Reference in New Issue