diff -r 3054503bad7d -r caa25ab47aca src/hotspot/share/jfr/leakprofiler/chains/edgeStore.cpp --- a/src/hotspot/share/jfr/leakprofiler/chains/edgeStore.cpp Fri Sep 13 16:03:31 2019 -0700 +++ b/src/hotspot/share/jfr/leakprofiler/chains/edgeStore.cpp Sat Sep 14 14:40:09 2019 +0200 @@ -55,18 +55,23 @@ return !_edges->has_entries(); } -void EdgeStore::assign_id(EdgeEntry* entry) { +void EdgeStore::on_link(EdgeEntry* entry) { assert(entry != NULL, "invariant"); assert(entry->id() == 0, "invariant"); entry->set_id(++_edge_id_counter); } -bool EdgeStore::equals(const Edge& query, uintptr_t hash, const EdgeEntry* entry) { +bool EdgeStore::on_equals(uintptr_t hash, const EdgeEntry* entry) { assert(entry != NULL, "invariant"); assert(entry->hash() == hash, "invariant"); return true; } +void EdgeStore::on_unlink(EdgeEntry* entry) { + assert(entry != NULL, "invariant"); + // nothing +} + #ifdef ASSERT bool EdgeStore::contains(const oop* reference) const { return get(reference) != NULL; @@ -75,22 +80,21 @@ StoredEdge* EdgeStore::get(const oop* reference) const { assert(reference != NULL, "invariant"); - const StoredEdge e(NULL, reference); - EdgeEntry* const entry = _edges->lookup_only(e, (uintptr_t)reference); + EdgeEntry* const entry = _edges->lookup_only((uintptr_t)reference); return entry != NULL ? entry->literal_addr() : NULL; } StoredEdge* EdgeStore::put(const oop* reference) { assert(reference != NULL, "invariant"); const StoredEdge e(NULL, reference); - assert(NULL == _edges->lookup_only(e, (uintptr_t)reference), "invariant"); - EdgeEntry& entry = _edges->put(e, (uintptr_t)reference); + assert(NULL == _edges->lookup_only((uintptr_t)reference), "invariant"); + EdgeEntry& entry = _edges->put((uintptr_t)reference, e); return entry.literal_addr(); } traceid EdgeStore::get_id(const Edge* edge) const { assert(edge != NULL, "invariant"); - EdgeEntry* const entry = _edges->lookup_only(*edge, (uintptr_t)edge->reference()); + EdgeEntry* const entry = _edges->lookup_only((uintptr_t)edge->reference()); assert(entry != NULL, "invariant"); return entry->id(); }