Strict check for accessor "count"

pull/3707/head
Malcolm Tyrrell 2021-03-16 11:47:19 +00:00
parent e4983aa16e
commit 3503252e12
1 changed files with 8 additions and 1 deletions

View File

@ -883,7 +883,14 @@ inline void Accessor::Read(Value &obj, Asset &r) {
byteOffset = MemberOrDefault(obj, "byteOffset", size_t(0));
componentType = MemberOrDefault(obj, "componentType", ComponentType_BYTE);
count = MemberOrDefault(obj, "count", size_t(0));
{
const Value* countValue = FindUInt(obj, "count");
if (!countValue || countValue->GetInt() < 1)
{
throw DeadlyImportError("A strictly positive count value is required, when reading ", id.c_str(), name.empty() ? "" : " (" + name + ")");
}
count = countValue->GetUint();
}
const char *typestr;
type = ReadMember(obj, "type", typestr) ? AttribType::FromString(typestr) : AttribType::SCALAR;