Skip to content

Commit 87c9c90

Browse files
authored
Merge pull request #436 from barchett/fix/double-free-gravity-opt-free
fix(core): move gravity_opt_free after refcount check to prevent double-free
2 parents 0e42cb8 + dd81589 commit 87c9c90

1 file changed

Lines changed: 4 additions & 3 deletions

File tree

src/runtime/gravity_core.c

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3634,14 +3634,15 @@ void gravity_core_init (void) {
36343634
}
36353635

36363636
void gravity_core_free (void) {
3637-
// free optionals first
3638-
gravity_opt_free();
3639-
36403637
if (!core_inited) return;
36413638

36423639
// check if others VM are still running
36433640
if (--refcount) return;
36443641

3642+
// free optionals after refcount check — avoids double-free when mini-VM
3643+
// in gravity_compiler_reset() has already freed GC objects via internal_vm_cleanup
3644+
gravity_opt_free();
3645+
36453646
// this function should never be called
36463647
// it is just called when we need to internally check for memory leaks
36473648

0 commit comments

Comments
 (0)