Mercurial > hg > truffle
comparison src/share/vm/oops/methodData.cpp @ 14435:da862781b584
Merge
author | kvn |
---|---|
date | Thu, 21 Nov 2013 12:30:35 -0800 |
parents | 2b8e28fdf503 6e1826d5c23e |
children | fdad2932c73f 62c54fcc0a35 |
comparison
equal
deleted
inserted
replaced
14434:318d0622a6d7 | 14435:da862781b584 |
---|---|
273 _ret.post_initialize(); | 273 _ret.post_initialize(); |
274 } | 274 } |
275 } | 275 } |
276 | 276 |
277 bool TypeEntries::is_loader_alive(BoolObjectClosure* is_alive_cl, intptr_t p) { | 277 bool TypeEntries::is_loader_alive(BoolObjectClosure* is_alive_cl, intptr_t p) { |
278 return !is_type_none(p) && | 278 Klass* k = (Klass*)klass_part(p); |
279 !((Klass*)klass_part(p))->is_loader_alive(is_alive_cl); | 279 return k != NULL && k->is_loader_alive(is_alive_cl); |
280 } | 280 } |
281 | 281 |
282 void TypeStackSlotEntries::clean_weak_klass_links(BoolObjectClosure* is_alive_cl) { | 282 void TypeStackSlotEntries::clean_weak_klass_links(BoolObjectClosure* is_alive_cl) { |
283 for (int i = 0; i < _number_of_entries; i++) { | 283 for (int i = 0; i < _number_of_entries; i++) { |
284 intptr_t p = type(i); | 284 intptr_t p = type(i); |
285 if (is_loader_alive(is_alive_cl, p)) { | 285 if (!is_loader_alive(is_alive_cl, p)) { |
286 set_type(i, type_none()); | 286 set_type(i, with_status((Klass*)NULL, p)); |
287 } | 287 } |
288 } | 288 } |
289 } | 289 } |
290 | 290 |
291 void ReturnTypeEntry::clean_weak_klass_links(BoolObjectClosure* is_alive_cl) { | 291 void ReturnTypeEntry::clean_weak_klass_links(BoolObjectClosure* is_alive_cl) { |
292 intptr_t p = type(); | 292 intptr_t p = type(); |
293 if (is_loader_alive(is_alive_cl, p)) { | 293 if (!is_loader_alive(is_alive_cl, p)) { |
294 set_type(type_none()); | 294 set_type(with_status((Klass*)NULL, p)); |
295 } | 295 } |
296 } | 296 } |
297 | 297 |
298 bool TypeEntriesAtCall::return_profiling_enabled() { | 298 bool TypeEntriesAtCall::return_profiling_enabled() { |
299 return MethodData::profile_return(); | 299 return MethodData::profile_return(); |