More int-checks, check reader at end of import
diff --git a/include/rive/runtime_header.hpp b/include/rive/runtime_header.hpp index 636befc..ad36e16 100644 --- a/include/rive/runtime_header.hpp +++ b/include/rive/runtime_header.hpp
@@ -48,24 +48,24 @@ } } - header.m_MajorVersion = (int)reader.readVarUint64(); + header.m_MajorVersion = reader.readVarUintAs<int>(); if (reader.didOverflow()) { return false; } - header.m_MinorVersion = (int)reader.readVarUint64(); + header.m_MinorVersion = reader.readVarUintAs<int>(); if (reader.didOverflow()) { return false; } - header.m_FileId = (int)reader.readVarUint64(); + header.m_FileId = reader.readVarUintAs<int>(); if (reader.didOverflow()) { return false; } std::vector<int> propertyKeys; - for (int propertyKey = (int)reader.readVarUint64(); propertyKey != 0; - propertyKey = (int)reader.readVarUint64()) + for (int propertyKey = reader.readVarUintAs<int>(); propertyKey != 0; + propertyKey = reader.readVarUintAs<int>()) { propertyKeys.push_back(propertyKey); if (reader.didOverflow()) {
diff --git a/src/core/field_types/core_uint_type.cpp b/src/core/field_types/core_uint_type.cpp index d0d1242..15b19c0 100644 --- a/src/core/field_types/core_uint_type.cpp +++ b/src/core/field_types/core_uint_type.cpp
@@ -3,4 +3,6 @@ using namespace rive; -unsigned int CoreUintType::deserialize(BinaryReader& reader) { return (int)reader.readVarUint64(); } +unsigned int CoreUintType::deserialize(BinaryReader& reader) { + return reader.readVarUintAs<unsigned int>(); +}
diff --git a/src/file.cpp b/src/file.cpp index 4c7314d..3f1bdb8 100644 --- a/src/file.cpp +++ b/src/file.cpp
@@ -244,8 +244,8 @@ } } - return importStack.resolve() == StatusCode::Ok ? ImportResult::success - : ImportResult::malformed; + return !reader.hasError() && importStack.resolve() == StatusCode::Ok + ? ImportResult::success : ImportResult::malformed; } Artboard* File::artboard(std::string name) const {