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; | ||
| } | ||