Mercurial > hg > graal-compiler
comparison src/share/vm/prims/whitebox.cpp @ 20667:887a7cedb892
8064701: Some CDS optimizations should be disabled if bootclasspath is modified by JVMTI
Summary: Added API to track bootclasspath modification
Reviewed-by: jiangli, dholmes, minqi
author | iklam |
---|---|
date | Tue, 18 Nov 2014 03:38:50 -0800 |
parents | 787c9c28311f |
children | c80ddae00f51 |
comparison
equal
deleted
inserted
replaced
20666:bee8095780db | 20667:887a7cedb892 |
---|---|
54 #include "services/memTracker.hpp" | 54 #include "services/memTracker.hpp" |
55 #include "utilities/nativeCallStack.hpp" | 55 #include "utilities/nativeCallStack.hpp" |
56 #endif // INCLUDE_NMT | 56 #endif // INCLUDE_NMT |
57 | 57 |
58 #include "compiler/compileBroker.hpp" | 58 #include "compiler/compileBroker.hpp" |
59 #include "jvmtifiles/jvmtiEnv.hpp" | |
59 #include "runtime/compilationPolicy.hpp" | 60 #include "runtime/compilationPolicy.hpp" |
60 | 61 |
61 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC | 62 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC |
62 | 63 |
63 #define SIZE_T_MAX_VALUE ((size_t) -1) | 64 #define SIZE_T_MAX_VALUE ((size_t) -1) |
123 jintArray result = JVM_GetResourceLookupCache(env, loader, resource_name); | 124 jintArray result = JVM_GetResourceLookupCache(env, loader, resource_name); |
124 | 125 |
125 env->ReleaseStringUTFChars(name, resource_name); | 126 env->ReleaseStringUTFChars(name, resource_name); |
126 return result; | 127 return result; |
127 WB_END | 128 WB_END |
129 | |
130 WB_ENTRY(void, WB_AddToBootstrapClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) { | |
131 #if INCLUDE_JVMTI | |
132 ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI | |
133 const char* seg = env->GetStringUTFChars(segment, NULL); | |
134 JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION); | |
135 jvmtiError err = jvmti_env->AddToBootstrapClassLoaderSearch(seg); | |
136 assert(err == JVMTI_ERROR_NONE, "must not fail"); | |
137 env->ReleaseStringUTFChars(segment, seg); | |
138 #endif | |
139 } | |
140 WB_END | |
141 | |
142 WB_ENTRY(void, WB_AddToSystemClassLoaderSearch(JNIEnv* env, jobject o, jstring segment)) { | |
143 #if INCLUDE_JVMTI | |
144 ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI | |
145 const char* seg = env->GetStringUTFChars(segment, NULL); | |
146 JvmtiEnv* jvmti_env = JvmtiEnv::create_a_jvmti(JVMTI_VERSION); | |
147 jvmtiError err = jvmti_env->AddToSystemClassLoaderSearch(seg); | |
148 assert(err == JVMTI_ERROR_NONE, "must not fail"); | |
149 env->ReleaseStringUTFChars(segment, seg); | |
150 #endif | |
151 } | |
152 WB_END | |
153 | |
128 | 154 |
129 WB_ENTRY(jlong, WB_GetCompressedOopsMaxHeapSize(JNIEnv* env, jobject o)) { | 155 WB_ENTRY(jlong, WB_GetCompressedOopsMaxHeapSize(JNIEnv* env, jobject o)) { |
130 return (jlong)Arguments::max_heap_for_compressed_oops(); | 156 return (jlong)Arguments::max_heap_for_compressed_oops(); |
131 } | 157 } |
132 WB_END | 158 WB_END |
956 (void*)&WB_GetLookupCacheMatches}, | 982 (void*)&WB_GetLookupCacheMatches}, |
957 {CC"parseCommandLine", | 983 {CC"parseCommandLine", |
958 CC"(Ljava/lang/String;[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;", | 984 CC"(Ljava/lang/String;[Lsun/hotspot/parser/DiagnosticCommand;)[Ljava/lang/Object;", |
959 (void*) &WB_ParseCommandLine | 985 (void*) &WB_ParseCommandLine |
960 }, | 986 }, |
987 {CC"addToBootstrapClassLoaderSearch", CC"(Ljava/lang/String;)V", | |
988 (void*)&WB_AddToBootstrapClassLoaderSearch}, | |
989 {CC"addToSystemClassLoaderSearch", CC"(Ljava/lang/String;)V", | |
990 (void*)&WB_AddToSystemClassLoaderSearch}, | |
961 {CC"getCompressedOopsMaxHeapSize", CC"()J", | 991 {CC"getCompressedOopsMaxHeapSize", CC"()J", |
962 (void*)&WB_GetCompressedOopsMaxHeapSize}, | 992 (void*)&WB_GetCompressedOopsMaxHeapSize}, |
963 {CC"printHeapSizes", CC"()V", (void*)&WB_PrintHeapSizes }, | 993 {CC"printHeapSizes", CC"()V", (void*)&WB_PrintHeapSizes }, |
964 {CC"runMemoryUnitTests", CC"()V", (void*)&WB_RunMemoryUnitTests}, | 994 {CC"runMemoryUnitTests", CC"()V", (void*)&WB_RunMemoryUnitTests}, |
965 {CC"readFromNoaccessArea",CC"()V", (void*)&WB_ReadFromNoaccessArea}, | 995 {CC"readFromNoaccessArea",CC"()V", (void*)&WB_ReadFromNoaccessArea}, |