* eval_jump.c (rb_exec_end_proc): fix double free or corruption error
   when reentering by callcc. [ruby-core:58329] [Bug #9110]

 * test/ruby/test_beginendblock.rb: test for above.

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

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
revert r43675 and r43683 without tests for applying rollback patch.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
	* cont.c : Introdule ensure rollback mechanism. Please see below.

	* internal.h (ruby_register_rollback_func_for_ensure): catch up above change.
	  Add rollback mechanism API.

	* vm_core.h (typedef struct rb_vm_struct): catch up above change.
	  Introdule ensure-rollback relation table.

	* vm_core.h (typedef struct rb_thread_struct): catch up above change.
	  Introdule ensure stack.

	* eval.c (rb_ensure): catch up above change.
	  Introdule ensure stack.

	* hash.c : New function for rollback ensure, and register it to
	  ensure-rollback relation table. [ruby-dev:47803] [Bug #9105]

	Ensure Rollback Mechanism:
	A rollback's function is a function to rollback a state before ensure's
	function execution.
	When the jump of callcc is across the scope of rb_ensure,
	ensure's functions and rollback's functions are executed appropriately
	for keeping consistency.

	Current API is unstable, and only internal use.

	ruby_register_rollback_func_for_ensure(ensure_func,rollback_func)
	This API create relation ensure's function to rollback's function.
	By registered rollback's function, it is executed When jumpping into
	corresponding rb_ensure scope.


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


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

* test/ruby/test_beginendblock.rb (test_callcc_at_exit): use
  assert_normal_exit for better message.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43690 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
envutil.rb: crash report on Mac OS X

* test/ruby/envutil.rb (EnvUtil.diagnostic_reports): find crash report
  on Mac OS X.

* test/ruby/envutil.rb (Test::Unit::Assertions::FailDesc): include
  crash report on Mac OS X.

* test/ruby/envutil.rb (Test::Unit::Assertions#assert_in_out_err):
  remove crash reports if exist.

* test/ruby/test_process.rb (TestProcess#test_status_kill): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43691 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
	* test/ruby/test_hash.rb (class TestHash): add tests for [ruby-dev:47803] [Bug #9105]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@43692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
* lib/rexml/parsers/ultralightparser.rb
  (REXML::Parsers::UltraLightParser#parse): Fix wrong :start_doctype
  position.
  [Bug #9061] [ruby-dev:47778]
  Patch by Ippei Obayashi. Thanks!!!

* test/rexml/parser/test_ultra_light.rb: Add a test for this case.


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