From: "mame (Yusuke Endoh)" <mame@...>
Date: 2012-11-06T00:25:09+09:00
Subject: [ruby-core:48935] [ruby-trunk - Bug #7231] StringIO inconsistently raises IOError or RuntimeError if the string is frozen


Issue #7231 has been updated by mame (Yusuke Endoh).


Indeed.  I think that it should raise IOError constantly.  Any opinion?
Anyone could create a patch, please?

-- 
Yusuke Endoh <mame@tsg.ne.jp>
----------------------------------------
Bug #7231: StringIO inconsistently raises IOError or RuntimeError if the string is frozen
https://bugs.ruby-lang.org/issues/7231#change-32439

Author: brixen (Brian Ford)
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 1.9.3p286 (2012-10-12 revision 37165) [x86_64-darwin10.8.0]


StringIO#ungetc, #ungetbyte raise RuntimeError if the data string is frozen. StringIO#write raises IOError.

Why?

1.9.3p286 :001 > require 'stringio'
 => true 
1.9.3p286 :002 > s = StringIO.new x = "abc"
 => #<StringIO:0x00000101020038> 
1.9.3p286 :003 > x.freeze
 => "abc" 
1.9.3p286 :004 > s.ungetbyte 0x42
RuntimeError: can't modify frozen String
	from (irb):4:in `ungetbyte'
	from (irb):4
	from /Users/brian/.rvm/rubies/ruby-1.9.3-p286/bin/irb:16:in `<main>'
1.9.3p286 :005 > s.ungetc "w"
RuntimeError: can't modify frozen String
	from (irb):5:in `ungetc'
	from (irb):5
	from /Users/brian/.rvm/rubies/ruby-1.9.3-p286/bin/irb:16:in `<main>'
1.9.3p286 :006 > s.write "d"
IOError: not modifiable string
	from (irb):6:in `write'
	from (irb):6
	from /Users/brian/.rvm/rubies/ruby-1.9.3-p286/bin/irb:16:in `<main>'

Thanks,
Brian


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