summaryrefslogtreecommitdiff
path: root/.github/workflows
diff options
context:
space:
mode:
authoryui-knk <spiketeika@gmail.com>2023-03-30 19:26:29 +0900
committerYuichiro Kaneko <spiketeika@gmail.com>2023-03-31 09:38:34 +0900
commit3488eda41d42bf910b7c485c178faf5e82f0c27c (patch)
treeb094520c306a36f35522b88f9dd6599c488fcef8 /.github/workflows
parenta8782c454ce3590ecad3ec5da4a54347a7326683 (diff)
downloadruby-3488eda41d42bf910b7c485c178faf5e82f0c27c.tar.gz
Fix gc_verify_internal_consistency error for pattern_matching in ripper
`gc_verify_internal_consistency` reports "found internal inconsistency" for "test_pattern_matching.rb". http://ci.rvm.jp/results/trunk-gc-asserts@ruby-sp2-docker/4501173 Ruby's parser manages objects by two different ways. 1. For parser * markable node holds objects * call `RB_OBJ_WRITTEN` with `p->ast` as parent * `mark_ast_value` marks objects 2. For ripper * unmarkable node, NODE_RIPPER/NODE_CDECL, holds objects * call `rb_ast_add_mark_object`. This function calls `rb_hash_aset` then `RB_OBJ_WRITTEN` is called with `mark_hash` as parent * `mark_hash` marks objects However in current pattern_matching implementation * markable node holds objects * call `rb_ast_add_mark_object` This commit fix it to be #2. This was inconsistency however always `mark_hash` is made young by `rb_ast_add_mark_object` call then objects are not collected.
Diffstat (limited to '.github/workflows')
0 files changed, 0 insertions, 0 deletions