Skip to content
  • nagachika's avatar
    545d6820
    merge revision(s)... · 545d6820
    nagachika authored
    merge revision(s) fb4cf204,fa0279d9: [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(-)
    545d6820
    merge revision(s)...
    nagachika authored
    merge revision(s) fb4cf204,fa0279d9: [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(-)
Loading