diff options
author | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-01-04 14:20:35 +0000 |
---|---|---|
committer | matz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2002-01-04 14:20:35 +0000 |
commit | 1d6e0f8281a3b00829f8360c9fcf58b69788d401 (patch) | |
tree | 4026a4e1e49de6e28ee6c420b22d89328f7efb09 /lib | |
parent | 566aa6625327e534c4941f2c2b6ca6c4f06162f3 (diff) |
forgot to commit everything bug ChangeLog
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_6@1960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'lib')
-rw-r--r-- | lib/pstore.rb | 4 | ||||
-rw-r--r-- | lib/weakref.rb | 6 |
2 files changed, 7 insertions, 3 deletions
diff --git a/lib/pstore.rb b/lib/pstore.rb index 138e9aa520..fa82a48052 100644 --- a/lib/pstore.rb +++ b/lib/pstore.rb @@ -85,11 +85,11 @@ class PStore value = nil backup = @filename+"~" if File::exist?(@filename) - file = File::open(@filename, "r+") + file = File::open(@filename, "rb+") orig = true else @table = {} - file = File::open(@filename, "w+") + file = File::open(@filename, "wb+") Marshal::dump(@table, file) end file.flock(File::LOCK_EX) diff --git a/lib/weakref.rb b/lib/weakref.rb index 459f69f924..6861fde5f5 100644 --- a/lib/weakref.rb +++ b/lib/weakref.rb @@ -60,7 +60,11 @@ class WeakRef<Delegator unless ID_MAP[@__id] raise RefError, "Illegal Reference - probably recycled", caller(2) end - ObjectSpace._id2ref(@__id) + begin + ObjectSpace._id2ref(@__id) + rescue RangeError + raise RefError, "Illegal Reference - probably recycled", caller(2) + end end def weakref_alive? |