1.1 --- a/src/share/vm/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp Fri Jun 12 02:59:56 2020 +0100 1.2 +++ b/src/share/vm/jfr/recorder/checkpoint/types/jfrTypeSetUtils.hpp Mon Jun 15 14:08:11 2020 +0300 1.3 @@ -230,9 +230,10 @@ 1.4 typedef SymbolTable::HashEntry SymbolEntry; 1.5 typedef CStringTable::HashEntry CStringEntry; 1.6 private: 1.7 + traceid _symbol_id_counter; 1.8 SymbolTable* _sym_table; 1.9 CStringTable* _cstring_table; 1.10 - traceid _symbol_id_counter; 1.11 + CStringTable* _pkg_table; 1.12 1.13 // hashtable(s) callbacks 1.14 void assign_id(SymbolEntry* entry); 1.15 @@ -257,6 +258,12 @@ 1.16 traceid mark(const Klass* k); 1.17 traceid mark(const Symbol* symbol); 1.18 traceid mark(const char* str, uintptr_t hash); 1.19 + traceid markPackage(const char* name, uintptr_t hash); 1.20 + 1.21 + template <typename T> 1.22 + void iterate_packages(T& functor) { 1.23 + _pkg_table->iterate_entry(functor); 1.24 + } 1.25 1.26 const SymbolEntry* map_symbol(const Symbol* symbol) const; 1.27 const SymbolEntry* map_symbol(uintptr_t hash) const; 1.28 @@ -334,6 +341,8 @@ 1.29 traceid mark(const char* const str, uintptr_t hash); 1.30 traceid mark_anonymous_klass_name(const Klass* klass); 1.31 1.32 + traceid markPackage(const char* const name, uintptr_t hash); 1.33 + 1.34 const JfrSymbolId::SymbolEntry* map_symbol(const Symbol* symbol) const; 1.35 const JfrSymbolId::SymbolEntry* map_symbol(uintptr_t hash) const; 1.36 const JfrSymbolId::CStringEntry* map_cstring(uintptr_t hash) const; 1.37 @@ -360,6 +369,11 @@ 1.38 void iterate_cstrings(T& functor) { 1.39 _symbol_id->iterate_cstrings(functor); 1.40 } 1.41 + 1.42 + template <typename T> 1.43 + void iterate_packages(T& functor) { 1.44 + _symbol_id->iterate_packages(functor); 1.45 + } 1.46 }; 1.47 1.48 class KlassArtifactRegistrator {