diff options
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | compile.c | 3 | ||||
-rw-r--r-- | vm_core.h | 1 |
3 files changed, 6 insertions, 3 deletions
@@ -1,4 +1,7 @@ -Sun Apr 20 15:00:48 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> +Sun Apr 20 15:01:25 2008 Nobuyoshi Nakada <nobu@ruby-lang.org> + + * vm_core.h (struct iseq_compile_data): moved label_no from + new_label_body(). * compile.c (iseq_set_exception_table): allocates catch_table only when entries exist. @@ -625,12 +625,11 @@ static LABEL * new_label_body(rb_iseq_t *iseq, int line) { LABEL *labelobj = compile_data_alloc_label(iseq); - static int label_no = 0; labelobj->link.type = ISEQ_ELEMENT_LABEL; labelobj->link.next = 0; - labelobj->label_no = label_no++; + labelobj->label_no = iseq->compile_data->label_no++; labelobj->sc_state = 0; labelobj->sp = -1; return labelobj; @@ -162,6 +162,7 @@ struct iseq_compile_data { struct iseq_compile_data_storage *storage_current; int last_line; int flip_cnt; + int label_no; int node_level; const rb_compile_option_t *option; }; |