diff options
Diffstat (limited to 'vm_trace.c')
-rw-r--r-- | vm_trace.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/vm_trace.c b/vm_trace.c index 99d3104b40..7f65f98695 100644 --- a/vm_trace.c +++ b/vm_trace.c @@ -1226,7 +1226,9 @@ rb_tracepoint_enable_for_target(VALUE tpval, VALUE target, VALUE target_line) rb_method_definition_t *def = (rb_method_definition_t *)rb_method_def(target); if (def->type == VM_METHOD_TYPE_BMETHOD && (tp->events & (RUBY_EVENT_CALL | RUBY_EVENT_RETURN))) { - def->body.bmethod.hooks = ZALLOC(rb_hook_list_t); + if (def->body.bmethod.hooks == NULL) { + def->body.bmethod.hooks = ZALLOC(rb_hook_list_t); + } rb_hook_list_connect_tracepoint(target, def->body.bmethod.hooks, tpval, 0); rb_hash_aset(tp->local_target_set, target, Qfalse); target_bmethod = true; |