minor fixes for handling cyclic and corrupted types

This commit is contained in:
Nikita Smith committed 2026-04-15 15:32:51 -07:00
1 parent 18f468bc97
commit d0364dc39c
3 files changed
+31 -19

No files matched your search

+8 -2
View File
@@ -1224,7 +1224,7 @@ msf_data_from_sn(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn)
String8 page = msf_data_from_pn(msf->page_data_list, msf->page_size, n->pn);
if (acc.str + acc.size != page.str) {
if (acc.size > 0) {
if (acc.size) {
str8_list_push(arena, &result, acc);
}
acc = page;
@@ -1233,6 +1233,11 @@ msf_data_from_sn(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn)
}
}
if (acc.size) {
str8_list_push(arena, &result, acc);
MemoryZeroStruct(&acc);
}
if (n) {
String8 page = msf_data_from_pn(msf->page_data_list, msf->page_size, n->pn);
if (acc.str + acc.size != page.str) {
@@ -1243,11 +1248,12 @@ msf_data_from_sn(Arena *arena, MSF_Context *msf, MSF_StreamNumber sn)
acc.size = Min(stream->size - result.total_size, acc.size);
if (acc.size > 0) {
if (acc.size) {
str8_list_push(arena, &result, acc);
}
}
Assert(result.total_size == stream->size);
return result;
}