summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--include/mruby.h33
-rw-r--r--src/range.c2
-rw-r--r--src/variable.c9
3 files changed, 17 insertions, 27 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 5e3d78c1e..1317ee17d 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -161,7 +161,6 @@ struct RClass * mrb_class_new(mrb_state *mrb, struct RClass *super);
struct RClass * mrb_module_new(mrb_state *mrb);
int mrb_class_defined(mrb_state *mrb, const char *name);
struct RClass * mrb_class_get(mrb_state *mrb, const char *name);
-struct RClass * mrb_class_obj_get(mrb_state *mrb, const char *name);
mrb_value mrb_obj_dup(mrb_state *mrb, mrb_value obj);
mrb_value mrb_check_to_integer(mrb_state *mrb, mrb_value val, const char *method);
@@ -308,22 +307,22 @@ void mrb_bug(const char *fmt, ...);
+ those E_* macros requires mrb_state* variable named mrb.
+ exception objects obtained from those macros are local to mrb
*/
-#define E_RUNTIME_ERROR (mrb_class_obj_get(mrb, "RuntimeError"))
-#define E_TYPE_ERROR (mrb_class_obj_get(mrb, "TypeError"))
-#define E_ARGUMENT_ERROR (mrb_class_obj_get(mrb, "ArgumentError"))
-#define E_INDEX_ERROR (mrb_class_obj_get(mrb, "IndexError"))
-#define E_RANGE_ERROR (mrb_class_obj_get(mrb, "RangeError"))
-#define E_NAME_ERROR (mrb_class_obj_get(mrb, "NameError"))
-#define E_NOMETHOD_ERROR (mrb_class_obj_get(mrb, "NoMethodError"))
-#define E_SCRIPT_ERROR (mrb_class_obj_get(mrb, "ScriptError"))
-#define E_SYNTAX_ERROR (mrb_class_obj_get(mrb, "SyntaxError"))
-#define E_LOCALJUMP_ERROR (mrb_class_obj_get(mrb, "LocalJumpError"))
-#define E_REGEXP_ERROR (mrb_class_obj_get(mrb, "RegexpError"))
-
-#define E_NOTIMP_ERROR (mrb_class_obj_get(mrb, "NotImplementedError"))
-#define E_FLOATDOMAIN_ERROR (mrb_class_obj_get(mrb, "FloatDomainError"))
-
-#define E_KEY_ERROR (mrb_class_obj_get(mrb, "KeyError"))
+#define E_RUNTIME_ERROR (mrb_class_get(mrb, "RuntimeError"))
+#define E_TYPE_ERROR (mrb_class_get(mrb, "TypeError"))
+#define E_ARGUMENT_ERROR (mrb_class_get(mrb, "ArgumentError"))
+#define E_INDEX_ERROR (mrb_class_get(mrb, "IndexError"))
+#define E_RANGE_ERROR (mrb_class_get(mrb, "RangeError"))
+#define E_NAME_ERROR (mrb_class_get(mrb, "NameError"))
+#define E_NOMETHOD_ERROR (mrb_class_get(mrb, "NoMethodError"))
+#define E_SCRIPT_ERROR (mrb_class_get(mrb, "ScriptError"))
+#define E_SYNTAX_ERROR (mrb_class_get(mrb, "SyntaxError"))
+#define E_LOCALJUMP_ERROR (mrb_class_get(mrb, "LocalJumpError"))
+#define E_REGEXP_ERROR (mrb_class_get(mrb, "RegexpError"))
+
+#define E_NOTIMP_ERROR (mrb_class_get(mrb, "NotImplementedError"))
+#define E_FLOATDOMAIN_ERROR (mrb_class_get(mrb, "FloatDomainError"))
+
+#define E_KEY_ERROR (mrb_class_get(mrb, "KeyError"))
mrb_value mrb_yield(mrb_state *mrb, mrb_value v, mrb_value blk);
mrb_value mrb_yield_argv(mrb_state *mrb, mrb_value b, int argc, mrb_value *argv);
diff --git a/src/range.c b/src/range.c
index 6068b9f99..7e3e03136 100644
--- a/src/range.c
+++ b/src/range.c
@@ -9,7 +9,7 @@
#include "mruby/range.h"
#include "mruby/string.h"
-#define RANGE_CLASS (mrb_class_obj_get(mrb, "Range"))
+#define RANGE_CLASS (mrb_class_get(mrb, "Range"))
static void
range_check(mrb_state *mrb, mrb_value a, mrb_value b)
diff --git a/src/variable.c b/src/variable.c
index 33932ec4c..355bdde14 100644
--- a/src/variable.c
+++ b/src/variable.c
@@ -1066,15 +1066,6 @@ mrb_attr_get(mrb_state *mrb, mrb_value obj, mrb_sym id)
return mrb_iv_get(mrb, obj, id);
}
-struct RClass *
-mrb_class_obj_get(mrb_state *mrb, const char *name)
-{
- mrb_value mod = mrb_obj_value(mrb->object_class);
- mrb_sym sym = mrb_intern(mrb, name);
-
- return mrb_class_ptr(mrb_const_get(mrb, mod, sym));
-}
-
struct csym_arg {
struct RClass *c;
mrb_sym sym;