diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-06-18 09:01:00 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2015-06-18 09:01:00 +0000 |
commit | 12eeb4c0698a8c99c7acad2c989118c2fdd8f78c (patch) | |
tree | b6c7b3000ac07c90ce4003631d2261afeb3d26a0 | |
parent | a05cdd0a67655a3e41abaa308d79e9a628aa5909 (diff) | |
download | ruby-12eeb4c0698a8c99c7acad2c989118c2fdd8f78c.tar.gz |
* vm.c (rb_vm_control_frame_id_and_class): remove usless codes.
`me' knows ID and owner class.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@50950 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | vm.c | 23 |
2 files changed, 9 insertions, 19 deletions
@@ -1,3 +1,8 @@ +Thu Jun 18 17:59:06 2015 Koichi Sasada <ko1@atdot.net> + + * vm.c (rb_vm_control_frame_id_and_class): remove usless codes. + `me' knows ID and owner class. + Thu Jun 18 16:58:35 2015 Koichi Sasada <ko1@atdot.net> * method.h: constify rb_method_alias_struct::original_me and @@ -1738,31 +1738,16 @@ rb_iseq_eval_main(VALUE iseqval) int rb_vm_control_frame_id_and_class(const rb_control_frame_t *cfp, ID *idp, VALUE *klassp) { - rb_iseq_t *iseq = cfp->iseq; const rb_method_entry_t *me = rb_vm_frame_method_entry(cfp); - if (!iseq && me) { /* TODO: me should know all */ + if (me) { if (idp) *idp = me->def->original_id; if (klassp) *klassp = me->klass; - return 1; + return TRUE; } - while (iseq) { - if (RUBY_VM_IFUNC_P(iseq)) { - if (idp) *idp = idIFUNC; - if (klassp) *klassp = 0; - return 1; - } - if (iseq->defined_method_id) { - if (idp) *idp = iseq->defined_method_id; - if (klassp) *klassp = iseq->klass; - return 1; - } - if (iseq->local_iseq == iseq) { - break; - } - iseq = iseq->parent_iseq; + else { + return FALSE; } - return 0; } int |