stringChunkListsEq() + fix some i32 compares with u32

This commit is contained in:
Tenari
2026-04-11 10:46:13 -05:00
parent 60330da767
commit 28180886ae
4 changed files with 25 additions and 7 deletions
+17
View File
@@ -160,3 +160,20 @@ fn void stringChunkCopyToBuffer(StringChunkList* list, u8* buffer, u32 len) {
buffer[i] = *((char*)(chunk + 1) + (i%STRING_CHUNK_PAYLOAD_SIZE));
}
}
fn bool stringChunkListsEq(StringChunkList* a, StringChunkList* b) {
if (a->total_size != b->total_size) return false;
StringChunk* chunk_a = a->first;
StringChunk* chunk_b = b->first;
for (u32 i = 0; i < a->total_size; i++) {
if (i > 0 && i % STRING_CHUNK_PAYLOAD_SIZE == 0) {
chunk_a = chunk_a->next;
chunk_b = chunk_b->next;
}
u8 a_char = *((char*)(chunk_a + 1) + (i%STRING_CHUNK_PAYLOAD_SIZE));
u8 b_char = *((char*)(chunk_b + 1) + (i%STRING_CHUNK_PAYLOAD_SIZE));
if (a_char != b_char) return false;
}
return true;
}