equal
deleted
inserted
replaced
439 |
439 |
440 // Initialize from archived data. Currently this is done only |
440 // Initialize from archived data. Currently this is done only |
441 // during VM initialization time. No lock is needed. |
441 // during VM initialization time. No lock is needed. |
442 if (record != NULL) { |
442 if (record != NULL) { |
443 Thread* THREAD = Thread::current(); |
443 Thread* THREAD = Thread::current(); |
444 if (log_is_enabled(Info, cds, heap)) { |
|
445 ResourceMark rm; |
|
446 log_info(cds, heap)("initialize_from_archived_subgraph " PTR_FORMAT " %s", p2i(k), |
|
447 k->external_name()); |
|
448 } |
|
449 |
444 |
450 int i; |
445 int i; |
451 // Load/link/initialize the klasses of the objects in the subgraph. |
446 // Load/link/initialize the klasses of the objects in the subgraph. |
452 // NULL class loader is used. |
447 // NULL class loader is used. |
453 Array<Klass*>* klasses = record->subgraph_object_klasses(); |
448 Array<Klass*>* klasses = record->subgraph_object_klasses(); |
509 i += 3; |
504 i += 3; |
510 |
505 |
511 log_debug(cds, heap)(" " PTR_FORMAT " init field @ %2d = " PTR_FORMAT, p2i(k), field_offset, p2i(v)); |
506 log_debug(cds, heap)(" " PTR_FORMAT " init field @ %2d = " PTR_FORMAT, p2i(k), field_offset, p2i(v)); |
512 } |
507 } |
513 |
508 |
514 // Done. Java code can see the archived sub-graphs referenced from k's |
509 // Done. Java code can see the archived sub-graphs referenced from k's |
515 // mirror after this point. |
510 // mirror after this point. |
|
511 if (log_is_enabled(Info, cds, heap)) { |
|
512 ResourceMark rm; |
|
513 log_info(cds, heap)("initialize_from_archived_subgraph %s " PTR_FORMAT, |
|
514 k->external_name(), p2i(k)); |
|
515 } |
516 } |
516 } |
517 } |
517 } |
518 } |
518 } |
519 |
519 |
520 class WalkOopAndArchiveClosure: public BasicOopIterateClosure { |
520 class WalkOopAndArchiveClosure: public BasicOopIterateClosure { |