* iseq.c (rb_iseq_load_iseq): use rb_check_funcall instead of
  repeating method search.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@53048 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2015-12-12 07:07:42 +00:00
Родитель fae144419c
Коммит a2fcdb4fbe
1 изменённых файлов: 4 добавлений и 5 удалений

9
iseq.c
Просмотреть файл

@ -479,11 +479,10 @@ rb_iseq_new_with_opt(NODE *node, VALUE name, VALUE path, VALUE absolute_path,
const rb_iseq_t *
rb_iseq_load_iseq(VALUE fname)
{
if (rb_respond_to(rb_cISeq, rb_intern("load_iseq"))) {
VALUE iseqv = rb_funcall(rb_cISeq, rb_intern("load_iseq"), 1, fname);
if (CLASS_OF(iseqv) == rb_cISeq) {
return iseqw_check(iseqv);
}
VALUE iseqv = rb_check_funcall(rb_cISeq, rb_intern("load_iseq"), 1, &fname);
if (!SPECIAL_CONST_P(iseqv) && RBASIC_CLASS(iseqv) == rb_cISeq) {
return iseqw_check(iseqv);
}
return NULL;