Project

General

Profile

« Previous | Next » 

Revision 07ac5874

Added by Charlie Somerville over 11 years ago

  • compile.c (iseq_compile_each): emit opt_str_freeze if the #freeze
    method is called on a static string literal with no arguments.

  • defs/id.def (firstline): add freeze so idFreeze is available

  • insns.def (opt_str_freeze): add opt_str_freeze instruction which
    pushes a frozen string literal without allocating a new object if
    String#freeze is not overriden

  • string.c (Init_String): define String#freeze

  • vm.c (vm_init_redefined_flag): define BOP_FREEZE on String class as
    a basic operation

  • vm_insnhelper.h: ditto

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