aboutsummaryrefslogtreecommitdiffstats
path: root/vm_core.h
diff options
context:
space:
mode:
Diffstat (limited to 'vm_core.h')
-rw-r--r--vm_core.h16
1 files changed, 13 insertions, 3 deletions
diff --git a/vm_core.h b/vm_core.h
index bba13168dc..fd0fa0bf3b 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -125,15 +125,25 @@ struct iseq_compile_data_ensure_node_stack;
typedef struct rb_compile_option_struct rb_compile_option_t;
+
struct iseq_inline_cache_entry {
VALUE ic_vmstat;
VALUE ic_class;
union {
+ size_t index;
VALUE value;
- long index;
} ic_value;
};
+union iseq_inline_storage_entry {
+ struct {
+ struct rb_thread_struct *running_thread;
+ VALUE value;
+ VALUE done;
+ } once;
+ struct iseq_inline_cache_entry cache;
+};
+
/* to avoid warning */
struct rb_thread_struct;
struct rb_control_frame_struct;
@@ -224,8 +234,8 @@ struct rb_iseq_struct {
/* sizeof(vars) + 1 */
int local_size;
- struct iseq_inline_cache_entry *ic_entries;
- int ic_size;
+ union iseq_inline_storage_entry *is_entries;
+ int is_size;
rb_call_info_t *callinfo_entries;
int callinfo_size;