diff options
Diffstat (limited to 'vm_callinfo.h')
-rw-r--r-- | vm_callinfo.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/vm_callinfo.h b/vm_callinfo.h index 1629d9f0a9..ccc28eb527 100644 --- a/vm_callinfo.h +++ b/vm_callinfo.h @@ -26,6 +26,7 @@ enum vm_call_flag_bits { VM_CALL_OPT_SEND_bit, // internal flag VM_CALL_KW_SPLAT_MUT_bit, // kw splat hash can be modified (to avoid allocating a new one) VM_CALL_ARGS_SPLAT_MUT_bit, // args splat can be modified (to avoid allocating a new one) + VM_CALL_FORWARDING_bit, // m(...) VM_CALL__END }; @@ -42,6 +43,7 @@ enum vm_call_flag_bits { #define VM_CALL_OPT_SEND (0x01 << VM_CALL_OPT_SEND_bit) #define VM_CALL_KW_SPLAT_MUT (0x01 << VM_CALL_KW_SPLAT_MUT_bit) #define VM_CALL_ARGS_SPLAT_MUT (0x01 << VM_CALL_ARGS_SPLAT_MUT_bit) +#define VM_CALL_FORWARDING (0x01 << VM_CALL_FORWARDING_bit) struct rb_callinfo_kwarg { int keyword_len; @@ -333,6 +335,8 @@ vm_cc_new(VALUE klass, *((struct rb_callable_method_entry_struct **)&cc->cme_) = (struct rb_callable_method_entry_struct *)cme; *((vm_call_handler *)&cc->call_) = call; + VM_ASSERT(RB_TYPE_P(klass, T_CLASS) || RB_TYPE_P(klass, T_ICLASS)); + switch (type) { case cc_type_normal: break; |