summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gc.c2
-rw-r--r--gc/default/default.c2
2 files changed, 3 insertions, 1 deletions
diff --git a/gc.c b/gc.c
index d0dc70ff7f..0976d6b7b0 100644
--- a/gc.c
+++ b/gc.c
@@ -239,7 +239,7 @@ rb_gc_event_hook(VALUE obj, rb_event_flag_t event)
{
if (LIKELY(!rb_gc_event_hook_required_p(event))) return;
- rb_execution_context_t *ec = GET_EC();
+ rb_execution_context_t *ec = rb_gc_get_ec();
if (!ec->cfp) return;
EXEC_EVENT_HOOK(ec, event, ec->cfp->self, 0, 0, 0, obj);
diff --git a/gc/default/default.c b/gc/default/default.c
index 6465b5c70e..a08f6b79c8 100644
--- a/gc/default/default.c
+++ b/gc/default/default.c
@@ -6415,6 +6415,8 @@ garbage_collect(rb_objspace_t *objspace, unsigned int reason)
static int
gc_start(rb_objspace_t *objspace, unsigned int reason)
{
+ rb_gc_initialize_vm_context(&objspace->vm_context);
+
unsigned int do_full_mark = !!(reason & GPR_FLAG_FULL_MARK);
if (!rb_darray_size(objspace->heap_pages.sorted)) return TRUE; /* heap is not ready */