Bug #7231 ยป patch.diff
ext/stringio/stringio.c | ||
---|---|---|
rb_encoding *enc, *enc2;
|
||
if (NIL_P(c)) return Qnil;
|
||
check_modifiable(ptr);
|
||
if (FIXNUM_P(c)) {
|
||
int cc = FIX2INT(c);
|
||
char buf[16];
|
||
... | ... | |
cl = RSTRING_LEN(c);
|
||
if (cl == 0) return Qnil;
|
||
}
|
||
check_modifiable(ptr);
|
||
rb_str_modify(str);
|
||
if (cl > pos) {
|
||
char *s;
|
test/stringio/test_stringio.rb | ||
---|---|---|
assert_raise(RuntimeError, bug) {s.reopen("")}
|
||
end
|
||
def test_frozen_string
|
||
s = StringIO.new("".freeze)
|
||
bug = '[ruby-core:48530]'
|
||
assert_raise(IOError, bug) {s.write("foo")}
|
||
assert_raise(IOError, bug) {s.ungetc("a")}
|
||
assert_raise(IOError, bug) {s.ungetbyte("a")}
|
||
end
|
||
def test_readlines_limit_0
|
||
assert_raise(ArgumentError, "[ruby-dev:43392]") { StringIO.new.readlines(0) }
|
||
end
|