Fix deserializing resource usage debug data

This commit is contained in:
kleonc 2023-04-07 16:37:20 +02:00
parent f38b540273
commit 3e7752463a
1 changed files with 5 additions and 3 deletions

View File

@ -56,15 +56,17 @@ Array ServersDebugger::ResourceUsage::serialize() {
bool ServersDebugger::ResourceUsage::deserialize(const Array &p_arr) { bool ServersDebugger::ResourceUsage::deserialize(const Array &p_arr) {
CHECK_SIZE(p_arr, 1, "ResourceUsage"); CHECK_SIZE(p_arr, 1, "ResourceUsage");
uint32_t size = p_arr[0]; uint32_t size = p_arr[0];
CHECK_SIZE(p_arr, size, "ResourceUsage"); ERR_FAIL_COND_V(size % 4, false);
int idx = 1; CHECK_SIZE(p_arr, 1 + size, "ResourceUsage");
for (uint32_t i = 0; i < size / 4; i++) { uint32_t idx = 1;
while (idx < 1 + size) {
ResourceInfo info; ResourceInfo info;
info.path = p_arr[idx]; info.path = p_arr[idx];
info.format = p_arr[idx + 1]; info.format = p_arr[idx + 1];
info.type = p_arr[idx + 2]; info.type = p_arr[idx + 2];
info.vram = p_arr[idx + 3]; info.vram = p_arr[idx + 3];
infos.push_back(info); infos.push_back(info);
idx += 4;
} }
CHECK_END(p_arr, idx, "ResourceUsage"); CHECK_END(p_arr, idx, "ResourceUsage");
return true; return true;