31 #include "memory/padded.hpp" |
31 #include "memory/padded.hpp" |
32 #include "oops/oop.hpp" |
32 #include "oops/oop.hpp" |
33 #include "oops/weakHandle.hpp" |
33 #include "oops/weakHandle.hpp" |
34 #include "utilities/concurrentHashTable.hpp" |
34 #include "utilities/concurrentHashTable.hpp" |
35 |
35 |
36 class CompactStringTableWriter; |
36 class CompactHashtableWriter; |
37 class SerializeClosure; |
37 class SerializeClosure; |
38 |
38 |
39 class StringTable; |
39 class StringTable; |
40 class StringTableConfig; |
40 class StringTableConfig; |
41 typedef ConcurrentHashTable<WeakHandle<vm_string_table_data>, |
41 typedef ConcurrentHashTable<WeakHandle<vm_string_table_data>, |
161 { return StringTable::the_table()->_needs_rehashing; } |
161 { return StringTable::the_table()->_needs_rehashing; } |
162 |
162 |
163 // Sharing |
163 // Sharing |
164 private: |
164 private: |
165 oop lookup_shared(const jchar* name, int len, unsigned int hash) NOT_CDS_JAVA_HEAP_RETURN_(NULL); |
165 oop lookup_shared(const jchar* name, int len, unsigned int hash) NOT_CDS_JAVA_HEAP_RETURN_(NULL); |
166 static void copy_shared_string_table(CompactStringTableWriter* ch_table) NOT_CDS_JAVA_HEAP_RETURN; |
166 static void copy_shared_string_table(CompactHashtableWriter* ch_table) NOT_CDS_JAVA_HEAP_RETURN; |
167 public: |
167 public: |
168 static oop create_archived_string(oop s, Thread* THREAD) NOT_CDS_JAVA_HEAP_RETURN_(NULL); |
168 static oop create_archived_string(oop s, Thread* THREAD) NOT_CDS_JAVA_HEAP_RETURN_(NULL); |
169 static void set_shared_string_mapped() { _shared_string_mapped = true; } |
169 static void set_shared_string_mapped() { _shared_string_mapped = true; } |
170 static bool shared_string_mapped() { return _shared_string_mapped; } |
170 static bool shared_string_mapped() { return _shared_string_mapped; } |
171 static void shared_oops_do(OopClosure* f) NOT_CDS_JAVA_HEAP_RETURN; |
171 static void shared_oops_do(OopClosure* f) NOT_CDS_JAVA_HEAP_RETURN; |
172 static void write_to_archive() NOT_CDS_JAVA_HEAP_RETURN; |
172 static void write_to_archive() NOT_CDS_JAVA_HEAP_RETURN; |
173 static void serialize(SerializeClosure* soc) NOT_CDS_JAVA_HEAP_RETURN; |
173 static void serialize_shared_table_header(SerializeClosure* soc) NOT_CDS_JAVA_HEAP_RETURN; |
174 |
174 |
175 // Jcmd |
175 // Jcmd |
176 static void dump(outputStream* st, bool verbose=false); |
176 static void dump(outputStream* st, bool verbose=false); |
177 // Debugging |
177 // Debugging |
178 static size_t verify_and_compare_entries(); |
178 static size_t verify_and_compare_entries(); |