Skip to content
  • Koichi Sasada's avatar
    f2286925
    VALUE size packed callinfo (ci). · f2286925
    Koichi Sasada authored
    Now, rb_call_info contains how to call the method with tuple of
    (mid, orig_argc, flags, kwarg). Most of cases, kwarg == NULL and
    mid+argc+flags only requires 64bits. So this patch packed
    rb_call_info to VALUE (1 word) on such cases. If we can not
    represent it in VALUE, then use imemo_callinfo which contains
    conventional callinfo (rb_callinfo, renamed from rb_call_info).
    
    iseq->body->ci_kw_size is removed because all of callinfo is VALUE
    size (packed ci or a pointer to imemo_callinfo).
    
    To access ci information, we need to use these functions:
    vm_ci_mid(ci), _flag(ci), _argc(ci), _kwarg(ci).
    
    struct rb_call_info_kw_arg is renamed to rb_callinfo_kwarg.
    
    rb_funcallv_with_cc() and rb_method_basic_definition_p_with_cc()
    is temporary removed because cd->ci should be marked.
    f2286925
    VALUE size packed callinfo (ci).
    Koichi Sasada authored
    Now, rb_call_info contains how to call the method with tuple of
    (mid, orig_argc, flags, kwarg). Most of cases, kwarg == NULL and
    mid+argc+flags only requires 64bits. So this patch packed
    rb_call_info to VALUE (1 word) on such cases. If we can not
    represent it in VALUE, then use imemo_callinfo which contains
    conventional callinfo (rb_callinfo, renamed from rb_call_info).
    
    iseq->body->ci_kw_size is removed because all of callinfo is VALUE
    size (packed ci or a pointer to imemo_callinfo).
    
    To access ci information, we need to use these functions:
    vm_ci_mid(ci), _flag(ci), _argc(ci), _kwarg(ci).
    
    struct rb_call_info_kw_arg is renamed to rb_callinfo_kwarg.
    
    rb_funcallv_with_cc() and rb_method_basic_definition_p_with_cc()
    is temporary removed because cd->ci should be marked.
Loading