summaryrefslogtreecommitdiffhomepage
path: root/src/kernel.c
diff options
context:
space:
mode:
authorYukihiro Matsumoto <[email protected]>2012-06-23 10:40:17 +0900
committerYukihiro Matsumoto <[email protected]>2012-06-23 10:40:17 +0900
commit1fa63930fd072847d24ffe9c20a57109c41387ec (patch)
treed19ad4a48db0934d09cf1dababec2a4ed27f53a0 /src/kernel.c
parent2d781f5c1da6f627d9b4d3c2c7e9444108e09221 (diff)
downloadmruby-1fa63930fd072847d24ffe9c20a57109c41387ec.tar.gz
mruby-1fa63930fd072847d24ffe9c20a57109c41387ec.zip
check object type before retrieving instance variabls; close #311
Diffstat (limited to 'src/kernel.c')
-rw-r--r--src/kernel.c40
1 files changed, 0 insertions, 40 deletions
diff --git a/src/kernel.c b/src/kernel.c
index fd0440e05..8f2b15378 100644
--- a/src/kernel.c
+++ b/src/kernel.c
@@ -708,46 +708,6 @@ mrb_obj_ivar_set(mrb_state *mrb, mrb_value self)
return val;
}
-/* 15.3.1.3.23 */
-/*
- * call-seq:
- * obj.instance_variables -> array
- *
- * Returns an array of instance variable names for the receiver. Note
- * that simply defining an accessor does not create the corresponding
- * instance variable.
- *
- * class Fred
- * attr_accessor :a1
- * def initialize
- * @iv = 3
- * end
- * end
- * Fred.new.instance_variables #=> [:@iv]
- */
-mrb_value
-mrb_obj_instance_variables(mrb_state *mrb, mrb_value self)
-{
- mrb_value ary;
- kh_iv_t *h = RCLASS_IV_TBL(self);
- khint_t i;
- const char* p;
-
- ary = mrb_ary_new(mrb);
- if (h) {
- for (i=0;i<kh_end(h);i++) {
- if (kh_exist(h, i)) {
- p = mrb_sym2name(mrb, kh_key(h,i));
- if (*p == '@') {
- if (mrb_type(kh_value(h, i)) != MRB_TT_UNDEF)
- mrb_ary_push(mrb, ary, mrb_str_new_cstr(mrb, p));
- }
- }
- }
- }
- return ary;
-}
-
/* 15.3.1.3.24 */
/* 15.3.1.3.26 */
/*