summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authormatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-01-04 14:20:35 +0000
committermatz <matz@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-01-04 14:20:35 +0000
commit1d6e0f8281a3b00829f8360c9fcf58b69788d401 (patch)
tree4026a4e1e49de6e28ee6c420b22d89328f7efb09 /lib
parent566aa6625327e534c4941f2c2b6ca6c4f06162f3 (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.rb4
-rw-r--r--lib/weakref.rb6
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?