< prev index next > src/hotspot/share/cds/archiveBuilder.hpp
Print this page
_buffered_addr = ref->obj();
} else {
_buffered_addr = nullptr;
}
}
+ SourceObjInfo(address src, address buf) {
+ _source_addr = src;
+ _buffered_addr = buf;
+ }
// This constructor is only used for regenerated objects (created by LambdaFormInvokers, etc).
// src = address of a Method or InstanceKlass that has been regenerated.
// renegerated_obj_info = info for the regenerated version of src.
SourceObjInfo(address src, SourceObjInfo* renegerated_obj_info) :
assert(_buffered_addr != nullptr, "must be initialized");
}
return _buffered_addr;
}
MetaspaceObj::Type msotype() const { return _msotype; }
+ FollowMode follow_mode() const { return _follow_mode; }
};
class SourceObjList {
uintx _total_bytes;
GrowableArray<SourceObjInfo*>* _objs; // Source objects to be archived
CHeapBitMap _ptrmap;
// _ptrmap is split into these two bitmaps which are written into the archive.
CHeapBitMap _rw_ptrmap; // marks pointers in the RW region
CHeapBitMap _ro_ptrmap; // marks pointers in the RO region
+ CHeapBitMap _ac_ptrmap; // marks pointers in the CC region
SourceObjList _rw_src_objs; // objs to put in rw region
SourceObjList _ro_src_objs; // objs to put in ro region
ResizeableHashTable<address, SourceObjInfo, AnyObj::C_HEAP, mtClassShared> _src_obj_table;
ResizeableHashTable<address, address, AnyObj::C_HEAP, mtClassShared> _buffered_to_src_table;
void iterate_sorted_roots(MetaspaceClosure* it);
void sort_klasses();
static int compare_symbols_by_address(Symbol** a, Symbol** b);
static int compare_klass_by_name(Klass** a, Klass** b);
+ void update_hidden_class_loader_type(InstanceKlass* ik) NOT_CDS_JAVA_HEAP_RETURN;
void make_shallow_copies(DumpRegion *dump_region, const SourceObjList* src_objs);
void make_shallow_copy(DumpRegion *dump_region, SourceObjInfo* src_info);
void relocate_embedded_pointers(SourceObjList* src_objs);
template <typename T> void mark_and_relocate_to_buffered_addr(T ptr_location) {
mark_and_relocate_to_buffered_addr((address*)ptr_location);
}
bool has_been_archived(address src_addr) const;
-
- bool has_been_buffered(address src_addr) const;
- template <typename T> bool has_been_buffered(T src_addr) const {
- return has_been_buffered((address)src_addr);
+ template <typename T> bool has_been_archived(T src_addr) const {
+ return has_been_archived((address)src_addr);
}
address get_buffered_addr(address src_addr) const;
template <typename T> T get_buffered_addr(T src_addr) const {
CDS_ONLY(return (T)get_buffered_addr((address)src_addr);)
< prev index next >