Alan Wu 4c426e98a8 ZJIT: Use rb_gc_disable() over rb_gc_disable_no_rest()
no_rest() trips an assert inside the GC when we allocate with the GC
disabled this way:

    (gc_continue) ../src/gc/default/default.c:2029
    (newobj_cache_miss+0x128) [0x105040048] ../src/gc/default/default.c:2370
    (rb_gc_impl_new_obj+0x7c) [0x105036374] ../src/gc/default/default.c:2482
    (newobj_of) ../src/gc.c:995
    (rb_method_entry_alloc+0x40) [0x1051e6c64] ../src/vm_method.c:1102
    (rb_method_entry_complement_defined_class) ../src/vm_method.c:1180
    (prepare_callable_method_entry+0x14c) [0x1051e87b8] ../src/vm_method.c:1728
    (callable_method_entry_or_negative+0x1e8) [0x1051e809c] ../src/vm_method.c:1874

It's tries to continue the GC because it was out of space. Looks like
it's not safe to allocate new objects after using
rb_gc_disable_no_rest(); existing usages use it for malloc calls.
2025-10-15 16:36:46 -04:00
..