summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2014-11-19 01:03:19 +0900
committerYukihiro "Matz" Matsumoto <[email protected]>2014-11-19 01:03:19 +0900
commit5c6d6309b6b5e01ef3ff38f772e0fdd3fc5dd372 (patch)
tree52235765d4c8780fd535813d3d1c2eb549ec20d6
parent17507e4460b179c9dfef7e3af7abc24507c3e67e (diff)
downloadmruby-5c6d6309b6b5e01ef3ff38f772e0fdd3fc5dd372.tar.gz
mruby-5c6d6309b6b5e01ef3ff38f772e0fdd3fc5dd372.zip
separate mrb_notimplement() and mrb_notimplement_m(); ref #2636
-rw-r--r--include/mruby.h2
-rw-r--r--src/class.c13
2 files changed, 12 insertions, 3 deletions
diff --git a/include/mruby.h b/include/mruby.h
index fb3e5f30d..a4b3f1166 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -221,7 +221,7 @@ MRB_API struct RClass * mrb_class_get(mrb_state *mrb, const char *name);
MRB_API struct RClass * mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name);
MRB_API struct RClass * mrb_module_get(mrb_state *mrb, const char *name);
MRB_API struct RClass * mrb_module_get_under(mrb_state *mrb, struct RClass *outer, const char *name);
-MRB_API mrb_value mrb_notimplement(mrb_state*, mrb_value);
+MRB_API mrb_value mrb_notimplement_m(mrb_state*, mrb_value);
MRB_API mrb_value mrb_obj_dup(mrb_state *mrb, mrb_value obj);
MRB_API mrb_value mrb_check_to_integer(mrb_state *mrb, mrb_value val, const char *method);
diff --git a/src/class.c b/src/class.c
index 4a010dcb5..afcc4dc1d 100644
--- a/src/class.c
+++ b/src/class.c
@@ -363,8 +363,9 @@ mrb_define_method_vm(mrb_state *mrb, struct RClass *c, mrb_sym name, mrb_value b
}
}
-MRB_API mrb_value
-mrb_notimplement(mrb_state *mrb, mrb_value self)
+/* a function to raise NotImplementedError with current method name */
+MRB_API void
+mrb_notimplement(mrb_state *mrb)
{
const char *str;
mrb_int len;
@@ -376,6 +377,14 @@ mrb_notimplement(mrb_state *mrb, mrb_value self)
"%S() function is unimplemented on this machine",
mrb_str_new_static(mrb, str, (size_t)len));
}
+}
+
+/* a function to be replacement of unimplemented method */
+MRB_API mrb_value
+mrb_notimplement_m(mrb_state *mrb, mrb_value self)
+{
+ mrb_notimplement(mrb);
+ /* not reached */
return mrb_nil_value();
}