summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--test/rinda/test_rinda.rb8
2 files changed, 12 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index ab53b27196..0dc9fc272d 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+Wed Jul 27 22:46:59 2011 CHIKANAGA Tomoyuki <nagachika00@gmail.com>
+
+ * test/rinda/test_rinda.rb (test_remote_array_and_hash):
+ add local variables to protect objects from GC. [ruby-dev:44253]
+ [Bug #5104]
+
Wed Jul 27 17:55:54 2011 NARUSE, Yui <naruse@ruby-lang.org>
* include/ruby/missing.h: define __syscall if the platform has
diff --git a/test/rinda/test_rinda.rb b/test/rinda/test_rinda.rb
index b69b63ac78..e91ecf395f 100644
--- a/test/rinda/test_rinda.rb
+++ b/test/rinda/test_rinda.rb
@@ -539,9 +539,13 @@ class TupleSpaceProxyTest < Test::Unit::TestCase
end
def test_remote_array_and_hash
- @ts.write(DRbObject.new([1, 2, 3]))
+ # Don't remove ary/hsh local variables.
+ # These are necessary to protect objects from GC.
+ ary = [1, 2, 3]
+ @ts.write(DRbObject.new(ary))
assert_equal([1, 2, 3], @ts.take([1, 2, 3], 0))
- @ts.write(DRbObject.new({'head' => 1, 'tail' => 2}))
+ hsh = {'head' => 1, 'tail' => 2}
+ @ts.write(DRbObject.new(hsh))
assert_equal({'head' => 1, 'tail' => 2},
@ts.take({'head' => 1, 'tail' => 2}, 0))
end