src/hotspot/share/jfr/leakprofiler/chains/edgeStore.hpp
changeset 58132 caa25ab47aca
parent 55571 49102ba8cf14
child 58157 9dca61a7df19
child 58679 9c3209ff7550
equal deleted inserted replaced
58131:3054503bad7d 58132:caa25ab47aca
    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 on_link(EdgeEntry* entry);
    78   bool equals(const Edge& query, uintptr_t hash, const EdgeEntry* entry);
    78   bool on_equals(uintptr_t hash, const EdgeEntry* entry);
       
    79   void on_unlink(EdgeEntry* entry);
    79 
    80 
    80   StoredEdge* get(const oop* reference) const;
    81   StoredEdge* get(const oop* reference) const;
    81   StoredEdge* put(const oop* reference);
    82   StoredEdge* put(const oop* reference);
    82   traceid gc_root_id(const Edge* edge) const;
    83   traceid gc_root_id(const Edge* edge) const;
    83 
    84