summaryrefslogtreecommitdiffhomepage
path: root/src/proc.c
diff options
context:
space:
mode:
authorksss <[email protected]>2014-06-25 08:38:06 +0900
committerksss <[email protected]>2014-06-25 08:48:08 +0900
commit19b82944f898aed3057b80512dd5c97e4fad98a3 (patch)
treeca5aa32ef0307895c70335d4f5eb1650bef98d40 /src/proc.c
parentdfeadf19da5979b4adf11a55c3596d2ccf34ee3b (diff)
downloadmruby-19b82944f898aed3057b80512dd5c97e4fad98a3.tar.gz
mruby-19b82944f898aed3057b80512dd5c97e4fad98a3.zip
Proc#arity return 0 when opcode was not OP_ENTER
Diffstat (limited to 'src/proc.c')
-rw-r--r--src/proc.c6
1 files changed, 6 insertions, 0 deletions
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);