summaryrefslogtreecommitdiff
path: root/vm_core.h
diff options
context:
space:
mode:
authorko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-22 11:21:21 (GMT)
committerko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2015-07-22 11:21:21 (GMT)
commitc44360f62316f629441af47213a6c22ae1c3606b (patch)
tree65450d551e8bf87c9457a3a806c3fcff66b11d58 /vm_core.h
parent6f8b0aeb3b6a7c8539dd3b4f09429ce2f459335f (diff)
* vm_core.h: modify layout of rb_iseq_constant_body.
Move frequent accesssing fields to upper part. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51341 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_core.h')
-rw-r--r--vm_core.h38
1 files changed, 18 insertions, 20 deletions
diff --git a/vm_core.h b/vm_core.h
index 1544c9a..b266e38 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -251,29 +251,11 @@ struct rb_iseq_constant_body {
} type; /* instruction sequence type */
int stack_max; /* for stack overflow check */
-
- rb_iseq_location_t location;
-
- VALUE *iseq_encoded; /* encoded iseq (insn addr and operands) */
- unsigned int iseq_size;
- unsigned int line_info_size;
-
- const VALUE mark_ary; /* Array: includes operands which should be GC marked */
-
- /* insn info, must be freed */
- struct iseq_line_info_entry *line_info_table;
-
- ID *local_table; /* must free */
- int local_table_size;
-
/* sizeof(vars) + 1 */
int local_size;
- union iseq_inline_storage_entry *is_entries;
- int is_size;
-
- int callinfo_size;
- rb_call_info_t *callinfo_entries;
+ unsigned int iseq_size;
+ VALUE *iseq_encoded; /* encoded iseq (insn addr and operands) */
/**
* parameter information
@@ -345,12 +327,28 @@ struct rb_iseq_constant_body {
} *keyword;
} param;
+ rb_iseq_location_t location;
+
+ /* insn info, must be freed */
+ struct iseq_line_info_entry *line_info_table;
+
+ ID *local_table; /* must free */
+
/* catch table */
struct iseq_catch_table *catch_table;
/* for child iseq */
const struct rb_iseq_struct *parent_iseq;
struct rb_iseq_struct *local_iseq; /* local_iseq->flip_cnt can be modified */
+
+ union iseq_inline_storage_entry *is_entries;
+ rb_call_info_t *callinfo_entries;
+ const VALUE mark_ary; /* Array: includes operands which should be GC marked */
+
+ int local_table_size;
+ int is_size;
+ int callinfo_size;
+ unsigned int line_info_size;
};
struct rb_iseq_variable_body {