aboutsummaryrefslogtreecommitdiffstats
path: root/insns.def
diff options
context:
space:
mode:
authortmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-04-17 11:20:23 +0000
committertmm1 <tmm1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2013-04-17 11:20:23 +0000
commitcbd8b099200d9cd19df770dbabeb698b08135800 (patch)
treeb17fd242610ade8f1d76f8efb9a91b41cb998ace /insns.def
parentce6db8f286160fbf71c409416bd43c229b874601 (diff)
downloadruby-cbd8b099200d9cd19df770dbabeb698b08135800.tar.gz
iseq: reduce array allocations for simple sequences
* 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/trunk@40336 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r--insns.def2
1 files changed, 1 insertions, 1 deletions
diff --git a/insns.def b/insns.def
index d61e99c4d0..fc4db92d4f 100644
--- a/insns.def
+++ b/insns.def
@@ -1237,7 +1237,7 @@ setinlinecache
(VALUE val)
{
if (ic->ic_value.value == Qundef) {
- rb_ary_push(GET_ISEQ()->mark_ary, val);
+ rb_iseq_add_mark_object(GET_ISEQ(), val);
}
ic->ic_value.value = val;
ic->ic_vmstat = GET_VM_STATE_VERSION() - ruby_vm_const_missing_count;