diff options
author | KJ Tsanaktsidis <kj@kjtsanaktsidis.id.au> | 2023-11-11 16:12:12 +1100 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2023-11-24 13:16:15 -0500 |
commit | e201b81f79828c30500947fe8c8ea3c515e3d112 (patch) | |
tree | 3c19de035b64f275f567efdda321f4bb90761523 /internal | |
parent | 99e1f7b60717bc5ca3b160f10f4a8fe1521cba7c (diff) | |
download | ruby-e201b81f79828c30500947fe8c8ea3c515e3d112.tar.gz |
Mark cc->cme_ for refinement callcaches as well
This is required for the same reason that super CC needs it.
See 36023d5cb751d62fca0c27901c07527b20170f4d.
Reproducer:
def cached_foo_callsite(obj) = obj.foo
class Foo
def foo = :v1
module R
refine Foo do
def foo = :unused
end
end
end
obj = Foo.new
cached_foo_callsite(obj) # set up cc with cme for foo=:v1
class Foo
def foo = :v2
end
GC.start # cme for foo=:v1 collected, if not reachable by cached_foo_callsite
cached_foo_callsite(obj)
[Bug #19994]
Diffstat (limited to 'internal')
0 files changed, 0 insertions, 0 deletions