diff options
author | nagachika <nagachika@ruby-lang.org> | 2021-12-24 17:47:44 +0900 |
---|---|---|
committer | nagachika <nagachika@ruby-lang.org> | 2021-12-24 17:47:44 +0900 |
commit | 545d6820715a48a17d6182128c0db4198dfa76c1 (patch) | |
tree | 4eb0ca72b4e98923adfcf163a394a4d2997597b2 /version.h | |
parent | 1d29740c1b101db4bd8fc2d05f929a9e37471a0f (diff) |
merge revision(s) fb4cf204a662a8cd9dafef6f31f2bd0db9129abe,fa0279d947c3962c3f8c32852278d3ebb964cb19: [Backport #17725]
use me->def instead of me for opt_table
`vm_opt_method_table` is me=>bop table to manage the optimized
methods (by specialized instruction). However, `me` can be invalidated
to invalidate the method cache entry.
[Bug #17725]
To solve the issue, use `me-def` instead of `me` which simply copied
at invalidation timing.
A test by @jeremyevans https://github.com/ruby/ruby/pull/4376
---
test/ruby/test_method.rb | 15 +++++++++++++++
vm.c | 11 +++++------
2 files changed, 20 insertions(+), 6 deletions(-)
should not share same `def` for specialized method
Because the key of redefine table is `def`, `def` should be
unique for each optimized method (`alias` is not allowed).
---
array.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Diffstat (limited to 'version.h')
-rw-r--r-- | version.h | 2 |
1 files changed, 1 insertions, 1 deletions
@@ -12,7 +12,7 @@ # define RUBY_VERSION_MINOR RUBY_API_VERSION_MINOR #define RUBY_VERSION_TEENY 4 #define RUBY_RELEASE_DATE RUBY_RELEASE_YEAR_STR"-"RUBY_RELEASE_MONTH_STR"-"RUBY_RELEASE_DAY_STR -#define RUBY_PATCHLEVEL 163 +#define RUBY_PATCHLEVEL 164 #define RUBY_RELEASE_YEAR 2021 #define RUBY_RELEASE_MONTH 12 |