[ruby-core:32904] [Ruby 1.9-Bug#3984][Open] Unexpeted StringIO.new(string) and string variable coupling

From: Heesob Park <redmine@...>
Date: 2010-10-26 09:30:49 UTC
List: ruby-core #32904
Bug #3984: Unexpeted StringIO.new(string) and string variable coupling
http://redmine.ruby-lang.org/issues/show/3984

Author: Heesob Park
Status: Open, Priority: Normal
Category: ext, Target version: 1.9.x
ruby -v: ruby 1.9.3dev (2010-10-26 trunk 29591) [i386-mswin32_90]

Consider this:

irb(main):001:0> require 'stringio'
=> true
irb(main):002:0> a = 'foo'
=> "foo"
irb(main):003:0> b = StringIO.new(a)
=> #<StringIO:0x10f6698>
irb(main):004:0> b.puts 'bar'
=> nil
irb(main):005:0> a
=> "bar\n"
irb(main):006:0> a << 'test'
=> "bar\ntest"
irb(main):007:0> b.string
=> "bar\ntest"
irb(main):008:0> a.clear
=> ""
irb(main):009:0> b.string
=> ""
irb(main):010:0> b.puts "12345"
=> nil
irb(main):011:0> a
=> "\x00\x00\x00\x0012345\n"
irb(main):012:0> b.string
=> "\x00\x00\x00\x0012345\n"

The last result is obviously unexpected and must be a bug.

This also occurs to StringIO#string= method.


----------------------------------------
http://redmine.ruby-lang.org

In This Thread

Prev Next