diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2019-09-12 15:21:18 -0700 |
---|---|---|
committer | Aaron Patterson <tenderlove@ruby-lang.org> | 2019-09-26 13:56:41 -0700 |
commit | 3cd8f76f7f1bc09f9dd6b65eaafe2fd3a990ac60 (patch) | |
tree | 4f2bd61e116bbdec7c3df14c2a406a5783d8c5cc /iseq.h | |
parent | bd017c633da4fe27c85b5dfc059b85d44a3b7afe (diff) | |
download | ruby-3cd8f76f7f1bc09f9dd6b65eaafe2fd3a990ac60.tar.gz |
Introduce a secondary arena
We'll scan the secondary arena during GC mark. So, we should only
allocate "markable" instruction linked list nodes out of the secondary
arena.
Diffstat (limited to 'iseq.h')
-rw-r--r-- | iseq.h | 10 |
1 files changed, 8 insertions, 2 deletions
@@ -99,8 +99,14 @@ struct iseq_compile_data { struct iseq_label_data *redo_label; const rb_iseq_t *current_block; struct iseq_compile_data_ensure_node_stack *ensure_node_stack; - struct iseq_compile_data_storage *storage_head; - struct iseq_compile_data_storage *storage_current; + struct { + struct iseq_compile_data_storage *storage_head; + struct iseq_compile_data_storage *storage_current; + } node; + struct { + struct iseq_compile_data_storage *storage_head; + struct iseq_compile_data_storage *storage_current; + } insn; int loopval_popped; /* used by NODE_BREAK */ int last_line; int label_no; |