comparison src/share/vm/code/compiledIC.cpp @ 8154:a2a67458a7b6

Fix issue that caused IC stub to be uncleared for C1/C2.
author Thomas Wuerthinger <thomas.wuerthinger@oracle.com>
date Thu, 07 Mar 2013 21:24:17 +0100
parents b8f261ba79c6
children 3c29f7da5c66
comparison
equal deleted inserted replaced
8153:466de7e331ef 8154:a2a67458a7b6
93 assert(!is_icholder || is_icholder_entry(entry_point), "must be"); 93 assert(!is_icholder || is_icholder_entry(entry_point), "must be");
94 94
95 // Don't use ic_destination for this test since that forwards 95 // Don't use ic_destination for this test since that forwards
96 // through ICBuffer instead of returning the actual current state of 96 // through ICBuffer instead of returning the actual current state of
97 // the CompiledIC. 97 // the CompiledIC.
98 if (is_icholder_entry(_ic_call->destination()) && !_is_optimized) { 98 if (is_icholder_entry(_ic_call->destination()) GRAAL_ONLY(&& _value != NULL)) {
99 // When patching for the ICStub case the cached value isn't 99 // When patching for the ICStub case the cached value isn't
100 // overwritten until the ICStub copied into the CompiledIC during 100 // overwritten until the ICStub copied into the CompiledIC during
101 // the next safepoint. Make sure that the CompiledICHolder* is 101 // the next safepoint. Make sure that the CompiledICHolder* is
102 // marked for release at this point since it won't be identifiable 102 // marked for release at this point since it won't be identifiable
103 // once the entry point is overwritten. 103 // once the entry point is overwritten.