Project

General

Profile

Feature #10274 » 0001-iseq-reduce-from-280-to-272-bytes.patch

normalperson (Eric Wong), 09/21/2014 07:43 AM

View differences:

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;
-
(1-1/2)