189 class ListEntry : public JfrHashtableEntry<T, IdType> { |
189 class ListEntry : public JfrHashtableEntry<T, IdType> { |
190 public: |
190 public: |
191 ListEntry(uintptr_t hash, const T& data) : JfrHashtableEntry<T, IdType>(hash, data), |
191 ListEntry(uintptr_t hash, const T& data) : JfrHashtableEntry<T, IdType>(hash, data), |
192 _list_next(NULL), _serialized(false), _unloading(false), _leakp(false) {} |
192 _list_next(NULL), _serialized(false), _unloading(false), _leakp(false) {} |
193 const ListEntry<T, IdType>* list_next() const { return _list_next; } |
193 const ListEntry<T, IdType>* list_next() const { return _list_next; } |
|
194 void reset() const { |
|
195 _list_next = NULL; _serialized = false; _unloading = false; _leakp = false; |
|
196 } |
194 void set_list_next(const ListEntry<T, IdType>* next) const { _list_next = next; } |
197 void set_list_next(const ListEntry<T, IdType>* next) const { _list_next = next; } |
195 bool is_serialized() const { return _serialized; } |
198 bool is_serialized() const { return _serialized; } |
196 void set_serialized() const { _serialized = true; } |
199 void set_serialized() const { _serialized = true; } |
197 bool is_unloading() const { return _unloading; } |
200 bool is_unloading() const { return _unloading; } |
198 void set_unloading() const { _unloading = true; } |
201 void set_unloading() const { _unloading = true; } |
253 |
256 |
254 traceid mark(uintptr_t hash, const Symbol* sym, bool leakp); |
257 traceid mark(uintptr_t hash, const Symbol* sym, bool leakp); |
255 traceid mark(const Klass* k, bool leakp); |
258 traceid mark(const Klass* k, bool leakp); |
256 traceid mark(const Symbol* symbol, bool leakp); |
259 traceid mark(const Symbol* symbol, bool leakp); |
257 traceid mark(uintptr_t hash, const char* str, bool leakp); |
260 traceid mark(uintptr_t hash, const char* str, bool leakp); |
|
261 traceid bootstrap_name(bool leakp); |
258 |
262 |
259 template <typename Functor> |
263 template <typename Functor> |
260 void iterate_symbols(Functor& functor) { |
264 void iterate_symbols(Functor& functor) { |
261 iterate(functor, _sym_list); |
265 iterate(functor, _sym_list); |
262 } |
266 } |
303 traceid mark(uintptr_t hash, const Symbol* sym, bool leakp); |
307 traceid mark(uintptr_t hash, const Symbol* sym, bool leakp); |
304 traceid mark(const Klass* klass, bool leakp); |
308 traceid mark(const Klass* klass, bool leakp); |
305 traceid mark(const Symbol* symbol, bool leakp); |
309 traceid mark(const Symbol* symbol, bool leakp); |
306 traceid mark(uintptr_t hash, const char* const str, bool leakp); |
310 traceid mark(uintptr_t hash, const char* const str, bool leakp); |
307 traceid mark_unsafe_anonymous_klass_name(const Klass* klass, bool leakp); |
311 traceid mark_unsafe_anonymous_klass_name(const Klass* klass, bool leakp); |
|
312 traceid bootstrap_name(bool leakp); |
308 |
313 |
309 const JfrSymbolId::SymbolEntry* map_symbol(const Symbol* symbol) const; |
314 const JfrSymbolId::SymbolEntry* map_symbol(const Symbol* symbol) const; |
310 const JfrSymbolId::SymbolEntry* map_symbol(uintptr_t hash) const; |
315 const JfrSymbolId::SymbolEntry* map_symbol(uintptr_t hash) const; |
311 const JfrSymbolId::CStringEntry* map_cstring(uintptr_t hash) const; |
316 const JfrSymbolId::CStringEntry* map_cstring(uintptr_t hash) const; |
312 |
317 |