diff options
author | Aaron Patterson <tenderlove@ruby-lang.org> | 2020-11-02 14:40:29 -0800 |
---|---|---|
committer | Aaron Patterson <tenderlove@ruby-lang.org> | 2020-11-02 14:42:48 -0800 |
commit | 67b2c21c327c96d80b8a0fe02a96d417e85293e8 (patch) | |
tree | c4ea1236016fc2b7e40582a69966d35c5f8c7289 /compile.c | |
parent | 79b242260bc0530503dde85eda8e79b1c2aa9a6e (diff) |
Add `GC.auto_compact= true/false` and `GC.auto_compact`
* `GC.auto_compact=`, `GC.auto_compact` can be used to control when
compaction runs. Setting `auto_compact=` to true will cause
compaction to occurr duing major collections. At the moment,
compaction adds significant overhead to major collections, so please
test first!
[Feature #17176]
Diffstat (limited to 'compile.c')
-rw-r--r-- | compile.c | 3 |
1 files changed, 3 insertions, 0 deletions
@@ -1304,6 +1304,9 @@ new_insn_send(rb_iseq_t *iseq, int line_no, ID id, VALUE argc, const rb_iseq_t * VALUE *operands = compile_data_calloc2(iseq, sizeof(VALUE), 2); operands[0] = (VALUE)new_callinfo(iseq, id, FIX2INT(argc), FIX2INT(flag), keywords, blockiseq != NULL); operands[1] = (VALUE)blockiseq; + if (blockiseq) { + RB_OBJ_WRITTEN(iseq, Qundef, blockiseq); + } return new_insn_core(iseq, line_no, BIN(send), 2, operands); } |