< prev index next >

src/share/vm/classfile/stringTable.cpp

Print this page

        

*** 678,688 **** } } #if INCLUDE_CDS_JAVA_HEAP // Sharing ! oop StringTable::archive_string(oop s, Thread* THREAD) { assert(DumpSharedSpaces, "this function is only used with -Xshare:dump"); oop new_s = NULL; typeArrayOop v = java_lang_String::value(s); typeArrayOop new_v = (typeArrayOop)MetaspaceShared::archive_heap_object(v, THREAD); --- 678,688 ---- } } #if INCLUDE_CDS_JAVA_HEAP // Sharing ! oop StringTable::create_archived_string(oop s, Thread* THREAD) { assert(DumpSharedSpaces, "this function is only used with -Xshare:dump"); oop new_s = NULL; typeArrayOop v = java_lang_String::value(s); typeArrayOop new_v = (typeArrayOop)MetaspaceShared::archive_heap_object(v, THREAD);
*** 699,711 **** return new_s; } bool StringTable::copy_shared_string(GrowableArray<MemRegion> *string_space, CompactStringTableWriter* writer) { ! assert(UseG1GC, "Only support G1 GC"); ! assert(UseCompressedOops && UseCompressedClassPointers, ! "Only support UseCompressedOops and UseCompressedClassPointers enabled"); Thread* THREAD = Thread::current(); G1CollectedHeap::heap()->begin_archive_alloc_range(); for (int i = 0; i < the_table()->table_size(); ++i) { HashtableEntry<oop, mtSymbol>* bucket = the_table()->bucket(i); --- 699,709 ---- return new_s; } bool StringTable::copy_shared_string(GrowableArray<MemRegion> *string_space, CompactStringTableWriter* writer) { ! assert(MetaspaceShared::is_heap_object_archiving_allowed(), "must be"); Thread* THREAD = Thread::current(); G1CollectedHeap::heap()->begin_archive_alloc_range(); for (int i = 0; i < the_table()->table_size(); ++i) { HashtableEntry<oop, mtSymbol>* bucket = the_table()->bucket(i);
*** 715,725 **** if (hash == 0) { continue; } java_lang_String::set_hash(s, hash); ! oop new_s = archive_string(s, THREAD); if (new_s == NULL) { continue; } // set the archived string in bucket --- 713,723 ---- if (hash == 0) { continue; } java_lang_String::set_hash(s, hash); ! oop new_s = create_archived_string(s, THREAD); if (new_s == NULL) { continue; } // set the archived string in bucket
*** 734,746 **** assert(string_space->length() <= 2, "sanity"); return true; } void StringTable::write_to_archive(GrowableArray<MemRegion> *string_space) { ! assert(UseG1GC, "Only support G1 GC"); ! assert(UseCompressedOops && UseCompressedClassPointers, ! "Only support UseCompressedOops and UseCompressedClassPointers enabled"); _shared_table.reset(); int num_buckets = the_table()->number_of_entries() / SharedSymbolTableBucketSize; // calculation of num_buckets can result in zero buckets, we need at least one --- 732,742 ---- assert(string_space->length() <= 2, "sanity"); return true; } void StringTable::write_to_archive(GrowableArray<MemRegion> *string_space) { ! assert(MetaspaceShared::is_heap_object_archiving_allowed(), "must be"); _shared_table.reset(); int num_buckets = the_table()->number_of_entries() / SharedSymbolTableBucketSize; // calculation of num_buckets can result in zero buckets, we need at least one
< prev index next >