diff options
-rw-r--r-- | compile.c | 1 | ||||
-rw-r--r-- | iseq.c | 3 |
2 files changed, 4 insertions, 0 deletions
@@ -5950,6 +5950,7 @@ iseq_build_from_ary_body(rb_iseq_t *iseq, LINK_ANCHOR *anchor, } break; case TS_FUNCPTR: + if (!RTEST(op)) rb_raise(rb_eArgError, "cannot load funcptr"); argv[j] = op; break; default: @@ -1973,6 +1973,9 @@ iseq_data_to_ary(rb_iseq_t *iseq) rb_ary_push(ary, val); } break; + case TS_FUNCPTR: + rb_ary_push(ary, Qnil); + break; default: rb_bug("unknown operand: %c", insn_op_type(insn, j)); } |