< prev index next >
src/hotspot/share/gc/g1/g1CollectedHeap.cpp
Print this page
rev 50453 : imported patch 02.removeInArchiveRoot
rev 50454 : imported patch cleanups
*** 76,85 ****
--- 76,86 ----
#include "gc/shared/taskqueue.inline.hpp"
#include "gc/shared/weakProcessor.hpp"
#include "logging/log.hpp"
#include "memory/allocation.hpp"
#include "memory/iterator.hpp"
+ #include "memory/metaspaceShared.hpp"
#include "memory/resourceArea.hpp"
#include "oops/access.inline.hpp"
#include "oops/compressedOops.inline.hpp"
#include "oops/oop.inline.hpp"
#include "prims/resolvedMethodTable.hpp"
*** 821,830 ****
--- 822,843 ----
HeapRegion::GrainWords * HeapWordSize * uncommitted_regions);
}
decrease_used(size_used);
}
+ oop G1CollectedHeap::materialize_archived_object(oop obj) {
+ assert(obj != NULL, "archived obj is NULL");
+ assert(MetaspaceShared::is_archive_object(obj), "must be archived object");
+
+ // Loading an archived object makes it strongly reachable. If it is
+ // loaded during concurrent marking, it must be enqueued to the SATB
+ // queue, shading the previously white object gray.
+ G1BarrierSet::enqueue(obj);
+
+ return obj;
+ }
+
HeapWord* G1CollectedHeap::attempt_allocation_humongous(size_t word_size) {
ResourceMark rm; // For retrieving the thread names in log messages.
// The structure of this method has a lot of similarities to
// attempt_allocation_slow(). The reason these two were not merged
< prev index next >