diff options
| author | ksss <[email protected]> | 2014-06-25 08:38:06 +0900 |
|---|---|---|
| committer | ksss <[email protected]> | 2014-06-25 08:48:08 +0900 |
| commit | 19b82944f898aed3057b80512dd5c97e4fad98a3 (patch) | |
| tree | ca5aa32ef0307895c70335d4f5eb1650bef98d40 /src/proc.c | |
| parent | dfeadf19da5979b4adf11a55c3596d2ccf34ee3b (diff) | |
| download | mruby-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.c | 6 |
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); |
