1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* vm_method.c (rb_method_entry_make): fix WB miss.

Note that rb_method_entry_t::klass is not constified.
  We may  constify this field.
* test/ruby/test_alias.rb: add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44234 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
ko1 2013-12-16 07:46:48 +00:00
parent c3405de433
commit d8eb7f3c0d
3 changed files with 22 additions and 1 deletions

View file

@ -1,3 +1,11 @@
Mon Dec 16 16:40:35 2013 Koichi Sasada <ko1@atdot.net>
* vm_method.c (rb_method_entry_make): fix WB miss.
Note that rb_method_entry_t::klass is not constified.
We may constify this field.
* test/ruby/test_alias.rb: add a test.
Mon Dec 16 14:14:22 2013 Koichi Sasada <ko1@atdot.net>
* gc.c: use gc_verify_internal_consistency() instead of

View file

@ -1,4 +1,5 @@
require 'test/unit'
require_relative 'envutils'
class TestAlias < Test::Unit::TestCase
class Alias0
@ -119,4 +120,16 @@ class TestAlias < Test::Unit::TestCase
def test_super_in_aliased_module_method # fails in 1.8
assert_equal([:Base, :M], SuperInAliasedModuleMethod::Derived.new.bar)
end
def test_alias
assert_normal_exit %q{
require 'stringio'
GC.verify_internal_consistency
GC.start
class StringIO
alias_method :read_nonblock, :sysread
end
GC.verify_internal_consistency
}
end
end

View file

@ -322,7 +322,7 @@ rb_method_entry_make(VALUE klass, ID mid, rb_method_type_t type,
me->flag = NOEX_WITH_SAFE(noex);
me->mark = 0;
me->called_id = mid;
me->klass = defined_class;
OBJ_WRITE(klass, &me->klass, defined_class);
me->def = def;
if (def) {