merge revision(s) 40336: [Backport #8142]

* compile.c (iseq_add_mark_object): Use new rb_iseq_add_mark_object().

	* insns.def (setinlinecache): Ditto.

	* iseq.c (rb_iseq_add_mark_object): New function to allocate
	  iseq->mark_ary on demand. [Bug #8142]

	* iseq.h (rb_iseq_add_mark_object): Ditto.

	* iseq.c (prepare_iseq_build): Avoid allocating mark_ary until needed.

	* iseq.c (rb_iseq_build_for_ruby2cext): Ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_2_0_0@41682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nagachika 2013-06-27 17:32:35 +00:00
parent 8bbcbef83e
commit 4050436e57
6 changed files with 34 additions and 10 deletions

View file

@ -416,7 +416,7 @@ static int
iseq_add_mark_object(rb_iseq_t *iseq, VALUE v)
{
if (!SPECIAL_CONST_P(v)) {
rb_ary_push(iseq->mark_ary, v);
rb_iseq_add_mark_object(iseq, v);
}
return COMPILE_OK;
}