Feature #10274 » 0001-iseq-reduce-from-280-to-272-bytes.patch
| compile.c | ||
|---|---|---|
|
LABEL *lfin = NEW_LABEL(line);
|
||
|
LABEL *ltrue = NEW_LABEL(line);
|
||
|
rb_iseq_t *local_iseq = iseq->local_iseq;
|
||
|
rb_num_t cnt;
|
||
|
unsigned int cnt;
|
||
|
VALUE key;
|
||
|
cnt = local_iseq->flip_cnt++ + DEFAULT_SPECIAL_VAR_COUNT;
|
||
| ... | ... | |
|
rb_ary_entry(arg_opt_labels, i));
|
||
|
}
|
||
|
iseq->arg_simple = NUM2INT(arg_simple);
|
||
|
i = FIX2INT(arg_simple);
|
||
|
if (i < 0 || i > 2)
|
||
|
rb_raise(rb_eRangeError, "arg_simple must be 0..2: %d", i);
|
||
|
iseq->arg_simple = i;
|
||
|
}
|
||
|
/* exception */
|
||
| vm_core.h | ||
|---|---|---|
|
*/
|
||
|
int argc;
|
||
|
int arg_simple;
|
||
|
uint8_t arg_simple; /* 0..2 */
|
||
|
/* bool, if this is true, raise an ArgumentError when unknown
|
||
|
* keyword argument is passed */
|
||
|
uint8_t arg_keyword_check;
|
||
|
int arg_rest;
|
||
|
int arg_block;
|
||
|
int arg_opts;
|
||
| ... | ... | |
|
int arg_post_start;
|
||
|
int arg_size;
|
||
|
VALUE *arg_opt_table;
|
||
|
unsigned int flip_cnt; /* used at compile time */
|
||
|
int arg_keyword;
|
||
|
int arg_keyword_check; /* if this is true, raise an ArgumentError when unknown keyword argument is passed */
|
||
|
int arg_keywords;
|
||
|
int arg_keyword_required;
|
||
|
ID *arg_keyword_table;
|
||
| ... | ... | |
|
/* misc */
|
||
|
ID defined_method_id; /* for define_method */
|
||
|
rb_num_t flip_cnt;
|
||
|
/* used at compile time */
|
||
|
struct iseq_compile_data *compile_data;
|
||
|
-
|
||