Bug #5015 ยป method_added_callback.diff
| "b/P:\\ri\\sandbox\\rb193\\vm_method.c" | ||
|---|---|---|
|
rb_method_entry_t *
|
||
|
rb_add_method(VALUE klass, ID mid, rb_method_type_t type, void *opts, rb_method_flag_t noex)
|
||
|
{
|
||
|
int callback = TRUE; /* see #5015 */
|
||
|
rb_thread_t *th;
|
||
|
rb_control_frame_t *cfp;
|
||
|
int line;
|
||
| ... | ... | |
|
def->body.optimize_type = (enum method_optimized_type)opts;
|
||
|
break;
|
||
|
case VM_METHOD_TYPE_ZSUPER:
|
||
|
break;
|
||
|
case VM_METHOD_TYPE_UNDEF:
|
||
|
callback = FALSE;
|
||
|
break;
|
||
|
default:
|
||
|
rb_bug("rb_add_method: unsupported method type (%d)\n", type);
|
||
|
}
|
||
|
method_added(klass, mid);
|
||
|
if (callback) {
|
||
|
method_added(klass, mid);
|
||
|
}
|
||
|
return me;
|
||
|
}
|
||