Bug #1883
closedREXML hash sometimes computes a value that is too large
Description
=begin
The hash method sometimes computes a value that is too large. This is a rare occurrence in MRI, but this is causing problems for IronRuby. The following patch is suggested for computing smaller hashes:
edit: c:/ruby/libs/ruby/1.8/rexml/attribute.rb;C908357
File: attribute.rb
--- c:/ruby/libs/ruby/1.8/rexml/attribute.rb;C908357 (server) 6/23/2009 1:24 PM
+++ c:/ruby/libs/ruby/1.8/rexml/attribute.rb
@@ -93,7 +93,7 @@
# Creates (and returns) a hash from both the name and value
def hash
-
name.hash + value.hash
-
name.hash ^ value.hash end # Returns this attribute out as XML source, expanding the name
===================================================================
=end
Files
Updated by nobu (Nobuyoshi Nakada) over 14 years ago
=begin
Hi,
At Wed, 5 Aug 2009 03:24:49 +0900,
Ryan Riley wrote in [ruby-core:24754]:
The hash method sometimes computes a value that is too
large. This is a rare occurrence in MRI, but this is causing
problems for IronRuby. The following patch is suggested for
computing smaller hashes:
What problems?
--
Nobu Nakada
=end
Updated by tmat (Tomas Matousek) over 14 years ago
=begin
This is potential problem for MRI as well since Array#hash blows up if any item's hash is not a Fixnum:
class C
def hash
100000000000000000000
end
end
[C.new].hash # => in hash': bignum too big to convert into
long' (RangeError)
=end
Updated by nobu (Nobuyoshi Nakada) over 14 years ago
=begin
Hi,
At Wed, 5 Aug 2009 04:43:31 +0900,
Tomas Matousek wrote in [ruby-core:24758]:
This is potential problem for MRI as well since Array#hash blows up if any item's hash is not a Fixnum:
[C.new].hash # => in
hash': bignum too big to convert into
long' (RangeError)
It's been fixed in r22308, and should be backported to 1.8.
--
Nobu Nakada
=end
Updated by zenspider (Ryan Davis) about 13 years ago
=begin
I believe this patch was backported to ruby 1.8... so shouldn't this ticket be closed?
=end
Updated by headius (Charles Nutter) almost 13 years ago
This does not appear to have been backported to ruby_1_8_7 branch, so we have gotten recent reports about it being a bug in JRuby. Is it possible to get this tiny patch backported to ruby_1_8_7, so we can pull the change into our patched stdlib at https://github.com/jruby/ruby/tree/jruby-ruby_1_8_7 ?
I'd rather not apply the patch unilaterally, but this is a visible bug that needs fixing.
Updated by jeremyevans0 (Jeremy Evans) over 4 years ago
- Project changed from Backport186 to Ruby master
- Description updated (diff)
- Status changed from Open to Closed
- Backport set to 2.5: UNKNOWN, 2.6: UNKNOWN