[ruby-dev:50004] Re: freeze した String を指す WeakRef を作ろうとすると何かがおかしくなるようです
From:
Nobuyoshi Nakada <nobu@...>
Date:
2017-03-03 07:30:12 UTC
List:
ruby-dev #50004
On 2017/03/03 14:44, KISHIMOTO, Makoto wrote:
> freeze した String を指す WeakRef を作ろうとすると何かがおかしくなるようです
WeakRefはfinalizerを使って実装されていますが、1.9.1からはfrozenなオブ
ジェクトにはfinalizerを追加・削除できなくなっています。
> $ ruby24 -rweakref -ve 'WeakRef.new "".freeze'
> ruby 2.4.0p0 (2016-12-24 revision 57164) [amd64-freebsd10]
> /usr/local/lib/ruby/2.4/weakref.rb:88:in `[]=': can't modify frozen String (RuntimeError)
> from /usr/local/lib/ruby/2.4/weakref.rb:88:in `initialize'
> from -e:1:in `new'
> from -e:1:in `<main>'
せめてエラーメッセージをもう少しわかりやすくしますかね。
--
--- 僕の前にBugはない。
--- 僕の後ろにBugはできる。
中田 伸悦