< prev index next >

src/hotspot/share/cds/archiveBuilder.hpp

Print this page
@@ -143,10 +143,14 @@
          _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) :

@@ -178,10 +182,11 @@
          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

@@ -224,10 +229,11 @@
    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;

@@ -270,10 +276,11 @@
  
    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);

@@ -441,14 +448,12 @@
    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 >