summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorh2so5 <[email protected]>2013-07-01 11:42:38 +0900
committerh2so5 <[email protected]>2013-07-01 11:50:13 +0900
commit3f823a0ceeadcba48a332b5d89f867b23c2d332b (patch)
treef7be6558361cd3b2500ed897b2b4984a95f8b899
parentb58cd82dc7ce040e3aada5dfd908b794e717aa44 (diff)
downloadmruby-3f823a0ceeadcba48a332b5d89f867b23c2d332b.tar.gz
mruby-3f823a0ceeadcba48a332b5d89f867b23c2d332b.zip
Add mrb_class_get_under()
-rw-r--r--include/mruby.h1
-rw-r--r--src/class.c8
2 files changed, 8 insertions, 1 deletions
diff --git a/include/mruby.h b/include/mruby.h
index 568ed4876..b602ba8c9 100644
--- a/include/mruby.h
+++ b/include/mruby.h
@@ -178,6 +178,7 @@ 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_get_under(mrb_state *mrb, struct RClass *outer, 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);
diff --git a/src/class.c b/src/class.c
index 6eb70dce6..e33ab0153 100644
--- a/src/class.c
+++ b/src/class.c
@@ -227,7 +227,13 @@ class_from_sym(mrb_state *mrb, struct RClass *klass, mrb_sym id)
struct RClass *
mrb_class_get(mrb_state *mrb, const char *name)
{
- return class_from_sym(mrb, mrb->object_class, mrb_intern(mrb, name));
+ return mrb_class_get_under(mrb, mrb->object_class, name);
+}
+
+struct RClass *
+mrb_class_get_under(mrb_state *mrb, struct RClass *outer, const char *name)
+{
+ return class_from_sym(mrb, outer, mrb_intern(mrb, name));
}
/*!