aboutsummaryrefslogtreecommitdiffstats
path: root/tool/lrama/lib/lrama/output.rb
diff options
context:
space:
mode:
authorAlan Wu <XrXr@users.noreply.github.com>2023-11-17 17:57:25 -0500
committerGitHub <noreply@github.com>2023-11-17 17:57:25 -0500
commit24fe22a5da21c9df8584a4ce6b6d1ce18ac41cc2 (patch)
treecb038d1960cd21049ed7afe5fae962e8b44e9351 /tool/lrama/lib/lrama/output.rb
parentef72970a046270cc4b1d4ed029128876a9cbab88 (diff)
downloadruby-24fe22a5da21c9df8584a4ce6b6d1ce18ac41cc2.tar.gz
Fix ordering for auto compaction in get_overloaded_cme()
Found through GC.stress + GC.auto_compact crashes in GH-8932. Previously, the compaction run within `rb_method_entry_alloc()` could move the `def->body.iseq.cref` and `iseqptr` set up before the call and leave the `def` pointing to moved addresses. Nothing was marking `def` during that GC run. Low probability reproducer: GC.stress = true GC.auto_compact = true arr = [] alloc = 1000.times.map { [] } alloc = nil a = arr.first GC.start
Diffstat (limited to 'tool/lrama/lib/lrama/output.rb')
0 files changed, 0 insertions, 0 deletions