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 {