Merge pull request #2421 from ksss/safe-arity

Proc#arity return 0 when opcode was not OP_ENTER
This commit is contained in:
Yukihiro "Matz" Matsumoto
2014-06-25 13:42:59 +09:00
+6
View File
@@ -156,6 +156,12 @@ mrb_proc_arity(mrb_state *mrb, mrb_value self)
// TODO cfunc aspec not implemented yet
return mrb_fixnum_value(-1);
}
// arity is depend on OP_ENTER
if (GET_OPCODE(*iseq) != OP_ENTER) {
return mrb_fixnum_value(0);
}
aspec = GETARG_Ax(*iseq);
ma = MRB_ASPEC_REQ(aspec);
ra = MRB_ASPEC_REST(aspec);