Skip to content

Commit 7462daa

Browse files
authored
fix: Crash in GC on launch in ios (#4085)
1 parent 3b83cfa commit 7462daa

File tree

1 file changed

+7
-0
lines changed

1 file changed

+7
-0
lines changed

vm/ByteCodeTranslator/src/cn1_globals.m

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -855,6 +855,13 @@ void codenameOneGCSweep() {
855855
}
856856

857857
JAVA_BOOLEAN removeObjectFromHeapCollection(CODENAME_ONE_THREAD_STATE, JAVA_OBJECT o) {
858+
// Initialize allObjectsInHeap if it hasn't been initialized yet
859+
// This can happen if GC runs before any objects are allocated
860+
if(allObjectsInHeap == 0) {
861+
allObjectsInHeap = malloc(sizeof(JAVA_OBJECT) * sizeOfAllObjectsInHeap);
862+
memset(allObjectsInHeap, 0, sizeof(JAVA_OBJECT) * sizeOfAllObjectsInHeap);
863+
}
864+
858865
int pos = findPointerPosInHeap(o);
859866

860867
// double deletion might occur when the GC and the reference counting collide

0 commit comments

Comments
 (0)