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

merge revision(s) 49620: [Backport #10857]

* lib/resolv.rb (Resolv::DNS::Resource#==, #hash): elements
	  returned by Kernel#instance_variables are Symbols now.
	  [ruby-core:68128] [Bug #10857]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_2@49627 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
naruse 2015-02-17 09:57:39 +00:00
parent eef3f0d94c
commit 00088b97ec
4 changed files with 31 additions and 4 deletions

View file

@ -1,3 +1,9 @@
Tue Feb 17 18:57:13 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* lib/resolv.rb (Resolv::DNS::Resource#==, #hash): elements
returned by Kernel#instance_variables are Symbols now.
[ruby-core:68128] [Bug #10857]
Tue Feb 17 15:39:01 2015 Nobuyoshi Nakada <nobu@ruby-lang.org> Tue Feb 17 15:39:01 2015 Nobuyoshi Nakada <nobu@ruby-lang.org>
* ext/win32/lib/win32/registry.rb (Win32::Registry::API): use wide * ext/win32/lib/win32/registry.rb (Win32::Registry::API): use wide

View file

@ -1666,10 +1666,10 @@ class Resolv
return false unless self.class == other.class return false unless self.class == other.class
s_ivars = self.instance_variables s_ivars = self.instance_variables
s_ivars.sort! s_ivars.sort!
s_ivars.delete "@ttl" s_ivars.delete :@ttl
o_ivars = other.instance_variables o_ivars = other.instance_variables
o_ivars.sort! o_ivars.sort!
o_ivars.delete "@ttl" o_ivars.delete :@ttl
return s_ivars == o_ivars && return s_ivars == o_ivars &&
s_ivars.collect {|name| self.instance_variable_get name} == s_ivars.collect {|name| self.instance_variable_get name} ==
o_ivars.collect {|name| other.instance_variable_get name} o_ivars.collect {|name| other.instance_variable_get name}
@ -1682,7 +1682,7 @@ class Resolv
def hash # :nodoc: def hash # :nodoc:
h = 0 h = 0
vars = self.instance_variables vars = self.instance_variables
vars.delete "@ttl" vars.delete :@ttl
vars.each {|name| vars.each {|name|
h ^= self.instance_variable_get(name).hash h ^= self.instance_variable_get(name).hash
} }

View file

@ -0,0 +1,21 @@
require 'test/unit'
require 'resolv'
class TestResolvResource < Test::Unit::TestCase
def setup
address = "192.168.0.1"
@name1 = Resolv::DNS::Resource::IN::A.new(address)
@name1.instance_variable_set(:@ttl, 100)
@name2 = Resolv::DNS::Resource::IN::A.new(address)
end
def test_equality
bug10857 = '[ruby-core:68128] [Bug #10857]'
assert_equal(@name1, @name2, bug10857)
end
def test_hash
bug10857 = '[ruby-core:68128] [Bug #10857]'
assert_equal(@name1.hash, @name2.hash, bug10857)
end
end

View file

@ -1,6 +1,6 @@
#define RUBY_VERSION "2.2.0" #define RUBY_VERSION "2.2.0"
#define RUBY_RELEASE_DATE "2015-02-17" #define RUBY_RELEASE_DATE "2015-02-17"
#define RUBY_PATCHLEVEL 51 #define RUBY_PATCHLEVEL 52
#define RUBY_RELEASE_YEAR 2015 #define RUBY_RELEASE_YEAR 2015
#define RUBY_RELEASE_MONTH 2 #define RUBY_RELEASE_MONTH 2