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 {