Skip to content
  • nagachika's avatar
    79787c18
    merge revision(s) 58262,5826: [Backport #13369] · 79787c18
    nagachika authored
    	fix TracePoint#return_value with non-local exits
    
    	* vm.c: get return_value from imemo_throw_data object (THROW_DATA_VAL()).
    	  imemo_throw_data (TAG_BREAK) contains returned value.
    	  However, imemo_throw_data (TAG_BREAK) can skip several frames so that
    	  we need to use it only once (at most internal frame). To record it,
    	  we introduced THROW_DATA_CONSUMED and check it.
    
    	* internal.h: define THROW_DATA_CONSUMED flag.
    
    	* test/ruby/test_settracefunc.rb: add tests for [Bug #13369]
    
    	* vm_insnhelper.h: add THROW_DATA_CONSUMED_P() and
    	  THROW_DATA_CONSUMED_SET().
    	  unless File::FNM_DOTMATCH is set. (like '*/') [ruby-dev:23014]
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@59296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
    79787c18
    merge revision(s) 58262,5826: [Backport #13369]
    nagachika authored
    	fix TracePoint#return_value with non-local exits
    
    	* vm.c: get return_value from imemo_throw_data object (THROW_DATA_VAL()).
    	  imemo_throw_data (TAG_BREAK) contains returned value.
    	  However, imemo_throw_data (TAG_BREAK) can skip several frames so that
    	  we need to use it only once (at most internal frame). To record it,
    	  we introduced THROW_DATA_CONSUMED and check it.
    
    	* internal.h: define THROW_DATA_CONSUMED flag.
    
    	* test/ruby/test_settracefunc.rb: add tests for [Bug #13369]
    
    	* vm_insnhelper.h: add THROW_DATA_CONSUMED_P() and
    	  THROW_DATA_CONSUMED_SET().
    	  unless File::FNM_DOTMATCH is set. (like '*/') [ruby-dev:23014]
    
    
    git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_4@59296 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Loading