< prev index next >
src/hotspot/share/runtime/arguments.cpp
Print this page
@@ -1735,10 +1735,20 @@
if (FLAG_IS_DEFAULT(UseCompressedClassPointers)) {
FLAG_SET_ERGO(bool, UseCompressedClassPointers, true);
}
// Check the CompressedClassSpaceSize to make sure we use compressed klass ptrs.
if (UseCompressedClassPointers) {
+ size_t min_metaspace_sz = Metaspace::calculate_min_metaspace_size();
+ if ((min_metaspace_sz + CompressedClassSpaceSize) > MaxMetaspaceSize) {
+ if (min_metaspace_sz >= MaxMetaspaceSize) {
+ vm_exit_during_initialization("MaxMetaspaceSize is too small.");
+ } else {
+ FLAG_SET_ERGO(size_t, CompressedClassSpaceSize,
+ MaxMetaspaceSize - min_metaspace_sz);
+ }
+ }
+
if (CompressedClassSpaceSize > KlassEncodingMetaspaceMax) {
warning("CompressedClassSpaceSize is too large for UseCompressedClassPointers");
FLAG_SET_DEFAULT(UseCompressedClassPointers, false);
}
}
< prev index next >