Skip to content

Commit 76d579a

Browse files
committed
Refactor and optimize heap allocator - 2
1 parent 91f8a8c commit 76d579a

File tree

2 files changed

+5
-7
lines changed

2 files changed

+5
-7
lines changed

playground/umka.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/umka_vm.c

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -889,25 +889,23 @@ static FORCE_INLINE void doChangeRefCntImpl(Fiber *fiber, HeapPages *pages, void
889889
// In this case, we should traverse children as for the actual composite type, rather than for the pointer
890890
if (chunk->type)
891891
{
892-
void *chunkDataPtr = (char *)chunk + sizeof(HeapChunk);
893-
894892
switch (chunk->type->kind)
895893
{
896894
case TYPE_ARRAY:
897895
{
898-
doAddArrayItemsRefCntCandidates(candidates, chunkDataPtr, chunk->type, chunk->type->numItems);
896+
doAddArrayItemsRefCntCandidates(candidates, chunk->data, chunk->type, chunk->type->numItems);
899897
break;
900898
}
901899
case TYPE_DYNARRAY:
902900
{
903-
DynArrayDimensions *dims = (DynArrayDimensions *)chunkDataPtr;
904-
void *data = (char *)chunkDataPtr + sizeof(DynArrayDimensions);
901+
DynArrayDimensions *dims = (DynArrayDimensions *)chunk->data;
902+
void *data = chunk->data + sizeof(DynArrayDimensions);
905903
doAddArrayItemsRefCntCandidates(candidates, data, chunk->type, dims->len);
906904
break;
907905
}
908906
case TYPE_STRUCT:
909907
{
910-
doAddStructFieldsRefCntCandidates(candidates, chunkDataPtr, chunk->type);
908+
doAddStructFieldsRefCntCandidates(candidates, chunk->data, chunk->type);
911909
break;
912910
}
913911
default:

0 commit comments

Comments
 (0)