equal
deleted
inserted
replaced
1048 // Ok, to lookup references to zombies here |
1048 // Ok, to lookup references to zombies here |
1049 CodeBlob *cb = CodeCache::find_blob_unsafe(ic->ic_destination()); |
1049 CodeBlob *cb = CodeCache::find_blob_unsafe(ic->ic_destination()); |
1050 if( cb != NULL && cb->is_nmethod() ) { |
1050 if( cb != NULL && cb->is_nmethod() ) { |
1051 nmethod* nm = (nmethod*)cb; |
1051 nmethod* nm = (nmethod*)cb; |
1052 // Clean inline caches pointing to zombie, non-entrant and unloaded methods |
1052 // Clean inline caches pointing to zombie, non-entrant and unloaded methods |
1053 if (!nm->is_in_use() || (nm->method()->code() != nm)) ic->set_to_clean(); |
1053 if (!nm->is_in_use() || (nm->method()->code() != nm)) ic->set_to_clean(is_alive()); |
1054 } |
1054 } |
1055 break; |
1055 break; |
1056 } |
1056 } |
1057 case relocInfo::static_call_type: { |
1057 case relocInfo::static_call_type: { |
1058 CompiledStaticCall *csc = compiledStaticCall_at(iter.reloc()); |
1058 CompiledStaticCall *csc = compiledStaticCall_at(iter.reloc()); |
1148 } |
1148 } |
1149 |
1149 |
1150 // Tell if a non-entrant method can be converted to a zombie (i.e., |
1150 // Tell if a non-entrant method can be converted to a zombie (i.e., |
1151 // there are no activations on the stack, not in use by the VM, |
1151 // there are no activations on the stack, not in use by the VM, |
1152 // and not in use by the ServiceThread) |
1152 // and not in use by the ServiceThread) |
1153 bool nmethod::can_not_entrant_be_converted() { |
1153 bool nmethod::can_convert_to_zombie() { |
1154 assert(is_not_entrant(), "must be a non-entrant method"); |
1154 assert(is_not_entrant(), "must be a non-entrant method"); |
1155 |
1155 |
1156 // Since the nmethod sweeper only does partial sweep the sweeper's traversal |
1156 // Since the nmethod sweeper only does partial sweep the sweeper's traversal |
1157 // count can be greater than the stack traversal count before it hits the |
1157 // count can be greater than the stack traversal count before it hits the |
1158 // nmethod for the second time. |
1158 // nmethod for the second time. |