lib/nbt: Fix #80

jocadbz
BodgeMaster 2023-06-18 03:17:20 +02:00
parent 01e5f5eaac
commit ae71322ba1
1 changed files with 12 additions and 6 deletions

View File

@ -1311,7 +1311,8 @@ namespace NBT {
goto returnError; goto returnError;
} }
contents.push_back(new Tag::Int8Array("", nextArray.value)); contents.push_back(new Tag::Int8Array("", nextArray.value));
*processedDataSize += (uint64_t) nextArray.value.size(); // +4 for the header of the array
*processedDataSize += (uint64_t) nextArray.value.size() + 4;
} }
break; break;
} }
@ -1370,7 +1371,8 @@ namespace NBT {
goto returnError; goto returnError;
} }
contents.push_back(new Tag::Int32Array("", nextArray.value)); contents.push_back(new Tag::Int32Array("", nextArray.value));
*processedDataSize += (uint64_t) nextArray.value.size() * 4; // +4 for the header of the array
*processedDataSize += (uint64_t) nextArray.value.size() * 4 + 4;
} }
break; break;
} }
@ -1382,7 +1384,8 @@ namespace NBT {
goto returnError; goto returnError;
} }
contents.push_back(new Tag::Int64Array("", nextArray.value)); contents.push_back(new Tag::Int64Array("", nextArray.value));
*processedDataSize += (uint64_t) nextArray.value.size() * 8; // +4 for the header of the array
*processedDataSize += (uint64_t) nextArray.value.size() * 8 + 4;
} }
break; break;
} }
@ -1627,7 +1630,8 @@ namespace NBT {
if (nextArray.isError) { if (nextArray.isError) {
return false; return false;
} }
*processedDataSize += (uint64_t) nextArray.value.size(); // +4 for the header of the array
*processedDataSize += (uint64_t) nextArray.value.size() + 4;
} }
return true; return true;
} }
@ -1678,7 +1682,8 @@ namespace NBT {
if (nextArray.isError) { if (nextArray.isError) {
return false; return false;
} }
*processedDataSize += (uint64_t) nextArray.value.size() * 4; // +4 for the header of the array
*processedDataSize += (uint64_t) nextArray.value.size() * 4 + 4;
} }
return true; return true;
} }
@ -1688,7 +1693,8 @@ namespace NBT {
if (nextArray.isError) { if (nextArray.isError) {
return false; return false;
} }
*processedDataSize += (uint64_t) nextArray.value.size() * 8; // +4 for the header of the array
*processedDataSize += (uint64_t) nextArray.value.size() * 8 + 4;
} }
return true; return true;
} }