Project

General

Profile

Bug #11721

String used as IO object buffer unexpectedly frozen if #to_sym called on it

Added by twalpole@gmail.com (Thomas Walpole) over 3 years ago. Updated over 3 years ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Target version:
-
ruby -v:
ruby 2.3.0dev (2015-11-20 trunk 52685) [x86_64-darwin14]
[ruby-core:71611]

Description

A string with forced encoding used a buffer for reading from a File becomes frozen unexpectedly if #to_sym is called on it

file = File.open('some_file')
str = ""
str.force_encoding(Encoding::US_ASCII)
str.frozen? # => false
file.read(2,str)
str.frozen? # => false
str.to_sym
str.frozen? # => true

If the force_encoding is skipped str doesn't become frozen, same with reading from the file.

Associated revisions

Revision c815f7e7
Added by nobu (Nobuyoshi Nakada) over 3 years ago

symbol.c: not freeze the receiver

  • symbol.c (rb_str_intern): should not freeze the receiver itself unexpectedly. [ruby-core:71611] [Bug #11721]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@52686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e

Revision 52686
Added by nobu (Nobuyoshi Nakada) over 3 years ago

symbol.c: not freeze the receiver

  • symbol.c (rb_str_intern): should not freeze the receiver itself unexpectedly. [ruby-core:71611] [Bug #11721]

Revision 52686
Added by nobu (Nobuyoshi Nakada) over 3 years ago

symbol.c: not freeze the receiver

  • symbol.c (rb_str_intern): should not freeze the receiver itself unexpectedly. [ruby-core:71611] [Bug #11721]

Revision 52686
Added by nobu (Nobuyoshi Nakada) over 3 years ago

symbol.c: not freeze the receiver

  • symbol.c (rb_str_intern): should not freeze the receiver itself unexpectedly. [ruby-core:71611] [Bug #11721]

Revision 52686
Added by nobu (Nobuyoshi Nakada) over 3 years ago

symbol.c: not freeze the receiver

  • symbol.c (rb_str_intern): should not freeze the receiver itself unexpectedly. [ruby-core:71611] [Bug #11721]

Revision 52686
Added by nobu (Nobuyoshi Nakada) over 3 years ago

symbol.c: not freeze the receiver

  • symbol.c (rb_str_intern): should not freeze the receiver itself unexpectedly. [ruby-core:71611] [Bug #11721]

History

#1

Updated by nobu (Nobuyoshi Nakada) over 3 years ago

  • Status changed from Open to Closed

Applied in changeset r52686.


symbol.c: not freeze the receiver

  • symbol.c (rb_str_intern): should not freeze the receiver itself unexpectedly. [ruby-core:71611] [Bug #11721]

Also available in: Atom PDF