[ruby-cvs:73174] nagachika:r66074 (ruby_2_5): merge revision(s) 64799, 64800, 64801: [Backport #15105]

nagachika at ruby-lang.org nagachika at ruby-lang.org
Wed Nov 28 22:55:18 JST 2018


nagachika	2018-11-28 22:55:17 +0900 (Wed, 28 Nov 2018)

  New Revision: 66074

  https://svn.ruby-lang.org/cgi-bin/viewvc.cgi?view=revision&revision=66074

  Log:
    merge revision(s) 64799,64800,64801: [Backport #15105]
    
    fix typo.
    
    * vm_exec.h (DEBUG_END_INSN()): use `ec` instead of `th`.
      This macro is used when `VMDEBUG > 0`.
    
    
    escape all env properly.
    
    * vm_backtrace.c (rb_debug_inspector_open): escape all env using
      `rb_vm_stack_to_heap()` before making bindings.
      [Bug #15105]
    
      There is a complicated story of this issue:
      Without this patch, IFUNC frame does not escaped. A IFUNC frame
      points to CFUNC ep as previous ep. However, CFUNC ep can be escaped
      because of making bindings of Ruby level frames.
      IFUNC's ep can points to invalidated ep and `rb_iter_break()` will
      fail. This is why `any?` fails.
    
    * test/-ext-/debug/test_debug.rb: add a test.
    
    
    * remove trailing spaces.

  Modified directories:
    branches/ruby_2_5/
  Modified files:
    branches/ruby_2_5/test/-ext-/debug/test_debug.rb
    branches/ruby_2_5/version.h
    branches/ruby_2_5/vm_backtrace.c
    branches/ruby_2_5/vm_exec.h


More information about the ruby-cvs mailing list