merge revision(s) r45350: [Backport #9645]

	* variable.c (rb_const_set): delete existing entry on redefinition
	  [Bug #9645]

	* test/ruby/test_const.rb (test_redefinition): test for leak

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

Conflicts:
	ChangeLog
	version.h
resolv/test_addr.rb: require tempfile for new test in r44312

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@44321 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Avoid tempfile leaks using Tempfile.create instead of Tempfile.open.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46117 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
string.c: shrink too big buffer

* string.c (rb_str_resize): shrink the buffer even if new length
  is same but it is enough smaller than the capacity.

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

Conflicts:
	string.c
file.c: shrink expanded path

* file.c (expand_path): shrink expanded path which no longer needs
  rooms to append.  [ruby-core:63114] [Bug #9934]

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

Conflicts:
	ChangeLog
string.c: consider capacity

* string.c (rb_str_resize): should consider the capacity instead
  of the old length, as pointed out by nagachika.

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

Conflicts:
	ChangeLog
add more test coverage for [ruby-core:63136] [Bug #9934]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@46414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Merge pull request #18 from github/2.1-expandpath

Backport file_expand memory usage fix
* gc.c (heap_extend_pages): calculate next growing heap size.
* gc.c (heap_set_increment): accept addition pages instead of
  minimum pages.
* gc.c (gc_after_sweep): use heap_etend_pages().
* gc.c (gc_heap_prepare_minimum_pages): add only 1 page.
* gc.c (heap_ready_to_gc): add only 1 page.

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

Conflicts:
	ChangeLog
* gc.c: change full GC timing to keep lower memory usage.
  Extend heap only at
  (1) after major GC
  or
  (2) after several (two times, at current) minor GC
  Details in https://bugs.ruby-lang.org/issues/9607#note-9
  [Bug #9607]

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

Conflicts:
	ChangeLog
	gc.c