From 19b82944f898aed3057b80512dd5c97e4fad98a3 Mon Sep 17 00:00:00 2001 From: ksss Date: Wed, 25 Jun 2014 08:38:06 +0900 Subject: Proc#arity return 0 when opcode was not OP_ENTER --- src/proc.c | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/proc.c b/src/proc.c index a61296ed4..1511725d9 100644 --- a/src/proc.c +++ b/src/proc.c @@ -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); -- cgit v1.2.3