diff options
author | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-08 02:57:39 +0000 |
---|---|---|
committer | ko1 <ko1@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2009-09-08 02:57:39 +0000 |
commit | 1affab5d1b47855f6a2567cf765e6743dd909fc5 (patch) | |
tree | 41e34ef0a04b01d6d0d26ca0a71e91aed4c7bd6a /insns.def | |
parent | d44d02bd7091c6eb54b8be099ec3c45e3b142d56 (diff) | |
download | ruby-1affab5d1b47855f6a2567cf765e6743dd909fc5.tar.gz ruby-1affab5d1b47855f6a2567cf765e6743dd909fc5.tar.xz ruby-1affab5d1b47855f6a2567cf765e6743dd909fc5.zip |
* iseq.c (iseq_mark): no need to mark inline cache entries.
* insns.def (onceinlinecache, setinlinecache): save a value
to mark cached value.
git-svn-id: http://svn.ruby-lang.org/repos/ruby/trunk@24786 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'insns.def')
-rw-r--r-- | insns.def | 4 |
1 files changed, 4 insertions, 0 deletions
@@ -1200,6 +1200,7 @@ onceinlinecache } else { /* none */ + ic->ic_value = Qundef; val = Qnil; } } @@ -1217,6 +1218,9 @@ setinlinecache { IC ic = GET_CONST_INLINE_CACHE(dst); + if (ic->ic_value == Qundef) { + rb_ary_push(GET_ISEQ()->mark_ary, val); + } ic->ic_value = val; ic->ic_vmstat = GET_VM_STATE_VERSION() - ruby_vm_const_missing_count; ruby_vm_const_missing_count = 0; |