src/hotspot/share/jfr/leakprofiler/chains/edgeStore.hpp
branchJEP-349-branch
changeset 57983 a57907813a83
parent 57870 00860d9caf4d
child 58154 060d9d139109
equal deleted inserted replaced
57971:aa7b1ea52413 57983:a57907813a83
    56     return const_cast<StoredEdge*>(static_cast<const StoredEdge*>(Edge::parent()));
    56     return const_cast<StoredEdge*>(static_cast<const StoredEdge*>(Edge::parent()));
    57   }
    57   }
    58 };
    58 };
    59 
    59 
    60 class EdgeStore : public CHeapObj<mtTracing> {
    60 class EdgeStore : public CHeapObj<mtTracing> {
    61   typedef HashTableHost<StoredEdge, traceid, Entry, EdgeStore> EdgeHashTable;
    61   typedef HashTableHost<StoredEdge, traceid, JfrHashtableEntry, EdgeStore> EdgeHashTable;
    62   typedef EdgeHashTable::HashEntry EdgeEntry;
    62   typedef EdgeHashTable::HashEntry EdgeEntry;
    63   template <typename,
    63   template <typename,
    64             typename,
    64             typename,
    65             template<typename, typename> class,
    65             template<typename, typename> class,
    66             typename,
    66             typename,
    72  private:
    72  private:
    73   static traceid _edge_id_counter;
    73   static traceid _edge_id_counter;
    74   EdgeHashTable* _edges;
    74   EdgeHashTable* _edges;
    75 
    75 
    76   // Hash table callbacks
    76   // Hash table callbacks
    77   void assign_id(EdgeEntry* entry);
    77   void link(EdgeEntry* entry);
    78   bool equals(const Edge& query, uintptr_t hash, const EdgeEntry* entry);
    78   bool equals(uintptr_t hash, const EdgeEntry* entry);
    79   void unlink(EdgeEntry* entry);
    79   void unlink(EdgeEntry* entry);
    80 
    80 
    81   StoredEdge* get(const oop* reference) const;
    81   StoredEdge* get(const oop* reference) const;
    82   StoredEdge* put(const oop* reference);
    82   StoredEdge* put(const oop* reference);
    83   traceid gc_root_id(const Edge* edge) const;
    83   traceid gc_root_id(const Edge* edge) const;