Project

General

Profile

« Previous | Next » 

Revision 76a929a7

Added by ko1 (Koichi Sasada) over 11 years ago

  • parse.y: change Symbol <-> ID relationship to avoid
    exposing IDs from collectable symbols.
    [Bug #10014]
    Now, rb_check_id() returns 0 if corresponding symbol is
    pinned dynamic symbol.
    There is remaining intern_cstr_without_pindown(), it can return
    IDs from collectable symbols. We must be careful to use it
    (only used in parse.y). I think it should be removed if
    it does not have impact for performance.
  • parse.y:
    add:
    • STATIC_SYM2ID()
    • STATIC_ID2SYM()
      rename:
    • rb_pin_dynamic_symbol() -> dsymbol_pindown()
  • internal.h:
    remove:
    • rb_check_id_without_pindown()
    • rb_sym2id_without_pindown()
      add:
    • rb_check_symbol()
    • rb_check_symbol_cstr()
  • load.c: use rb_check_id() or rb_check_id_cstr().
  • object.c: ditto.
  • struct.c: ditto.
  • thread.c: ditto.
  • vm_method.c: ditto.
  • string.c (sym_find): use only rb_check_symbol().
  • sprintf.c (rb_str_format): use rb_check_symbol_cstr().

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