[ruby-dev:48566] [ruby-trunk - Bug #10266] [Closed] String#to_sym generates too big object_id?

From: nobu@...
Date: 2014-09-20 01:23:10 UTC
List: ruby-dev #48566
Issue #10266 has been updated by Nobuyoshi Nakada.

Status changed from Open to Closed
% Done changed from 0 to 100

Applied in changeset r47648.

----------
compile.c: store IDs as Symbols

* compile.c (iseq_set_arguments): store local variable IDs in
  temporary list as Symbols.  previously these are stored as
  Fixnums to prevent from GC, but IDs of dynamic symbols can
  exceed Fixnum range and cause RangeError at inverting from
  Fixnum.  [ruby-dev:48564] [Bug #10266]

----------------------------------------
Bug #10266: String#to_sym generates too big object_id?
https://bugs.ruby-lang.org/issues/10266#change-48987

* Author: Hiroki Eguchi
* Status: Closed
* Priority: Normal
* Assignee: 
* Category: 
* Target version: 
* ruby -v: ruby 2.2.0dev (2014-09-19 trunk 47643) [x86_64-darwin13]
* Backport: 2.0.0: DONTNEED, 2.1: DONTNEED
----------------------------------------
## Script
~~~ruby
puts "hoge".to_sym.object_id
eval("def a(hoge:); end")
~~~

## Result on ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
~~~
$ ruby test_case.rb
420328
~~~

## Result on ruby 2.2.0dev (2014-09-19 trunk 47643) [x86_64-darwin13]
~~~
$ ruby test_case.rb
70279604013940
test_case.rb:2:in `eval': integer 140559208027880 too big to convert to `int' (RangeError)
	from test_case.rb:2:in `<main>'
~~~



-- 
https://bugs.ruby-lang.org/

In This Thread

Prev Next