8098821: Crash in system dictionary initialization with shared strings

Map string regions after the compressed class base is known

Co-authored-by: Mikhailo Seledtsov <mikhailo.seledtsov@oracle.com>
Reviewed-by: iklam, dcubed
This commit is contained in:
Coleen Phillimore 2015-06-17 21:44:48 +00:00
parent a6a13b5344
commit ac072b303d
5 changed files with 49 additions and 28 deletions

View file

@ -1213,6 +1213,10 @@ WB_ENTRY(jboolean, WB_IsShared(JNIEnv* env, jobject wb, jobject obj))
return MetaspaceShared::is_in_shared_space((void*)obj_oop);
WB_END
WB_ENTRY(jboolean, WB_AreSharedStringsIgnored(JNIEnv* env))
return StringTable::shared_string_ignored();
WB_END
//Some convenience methods to deal with objects from java
int WhiteBox::offset_for_field(const char* field_name, oop object,
Symbol* signature_symbol) {
@ -1438,6 +1442,7 @@ static JNINativeMethod methods[] = {
CC"(Ljava/lang/reflect/Executable;Ljava/lang/String;)Ljava/lang/String;",
(void*)&WB_GetMethodStringOption},
{CC"isShared", CC"(Ljava/lang/Object;)Z", (void*)&WB_IsShared },
{CC"areSharedStringsIgnored", CC"()Z", (void*)&WB_AreSharedStringsIgnored },
};
#undef CC