diff options
-rw-r--r-- | gc.c | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -12442,11 +12442,14 @@ rb_raw_obj_info(char *buff, const int buff_size, VALUE obj) { const struct rb_callcache *cc = (const struct rb_callcache *)obj; VALUE class_path = cc->klass ? rb_class_path_cached(cc->klass) : Qnil; - - APPENDF((BUFF_ARGS, "(klass:%s, cme:%s (%p) call:%p", - NIL_P(class_path) ? "??" : RSTRING_PTR(class_path), - vm_cc_cme(cc) ? rb_id2name(vm_cc_cme(cc)->called_id) : "<NULL>", - (void *)vm_cc_cme(cc), (void *)vm_cc_call(cc))); + const rb_callable_method_entry_t *cme = vm_cc_cme(cc); + + APPENDF((BUFF_ARGS, "(klass:%s cme:%s%s (%p) call:%p", + NIL_P(class_path) ? (cc->klass ? "??" : "<NULL>") : RSTRING_PTR(class_path), + cme ? rb_id2name(cme->called_id) : "<NULL>", + cme ? (METHOD_ENTRY_INVALIDATED(cme) ? " [inv]" : "") : "", + (void *)cme, + (void *)vm_cc_call(cc))); break; } default: |