diff options
Diffstat (limited to 'mrbgems/mruby-proc-ext/src/proc.c')
| -rw-r--r-- | mrbgems/mruby-proc-ext/src/proc.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/mrbgems/mruby-proc-ext/src/proc.c b/mrbgems/mruby-proc-ext/src/proc.c index 6117c4d40..9d8a7b037 100644 --- a/mrbgems/mruby-proc-ext/src/proc.c +++ b/mrbgems/mruby-proc-ext/src/proc.c @@ -13,11 +13,9 @@ mrb_proc_lambda_p(mrb_state *mrb, mrb_value self) return mrb_bool_value(MRB_PROC_STRICT_P(p)); } -static mrb_value -mrb_proc_source_location(mrb_state *mrb, mrb_value self) +mrb_value +mrb_proc_source_location(mrb_state *mrb, struct RProc *p) { - struct RProc *p = mrb_proc_ptr(self); - if (MRB_PROC_CFUNC_P(p)) { return mrb_nil_value(); } @@ -35,6 +33,12 @@ mrb_proc_source_location(mrb_state *mrb, mrb_value self) } static mrb_value +mrb_proc_source_location_m(mrb_state *mrb, mrb_value self) +{ + return mrb_proc_source_location(mrb, mrb_proc_ptr(self)); +} + +static mrb_value mrb_proc_inspect(mrb_state *mrb, mrb_value self) { struct RProc *p = mrb_proc_ptr(self); @@ -183,7 +187,7 @@ mrb_mruby_proc_ext_gem_init(mrb_state* mrb) { struct RClass *p = mrb->proc_class; mrb_define_method(mrb, p, "lambda?", mrb_proc_lambda_p, MRB_ARGS_NONE()); - mrb_define_method(mrb, p, "source_location", mrb_proc_source_location, MRB_ARGS_NONE()); + mrb_define_method(mrb, p, "source_location", mrb_proc_source_location_m, MRB_ARGS_NONE()); mrb_define_method(mrb, p, "to_s", mrb_proc_inspect, MRB_ARGS_NONE()); mrb_define_method(mrb, p, "inspect", mrb_proc_inspect, MRB_ARGS_NONE()); mrb_define_method(mrb, p, "parameters", mrb_proc_parameters, MRB_ARGS_NONE()); |
