Skip to content

Commit 282b9dc

Browse files
committed
8081833: Clean up JVMFlag getter/setter code
Reviewed-by: gziemski, coleenp
1 parent 0e98fc1 commit 282b9dc

26 files changed

+888
-1607
lines changed

src/hotspot/share/jfr/periodic/jfrPeriodic.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -279,11 +279,11 @@ TRACE_REQUEST_FUNC(ThreadContextSwitchRate) {
279279
#define SEND_FLAGS_OF_TYPE(eventType, flagType) \
280280
do { \
281281
JVMFlag *flag = JVMFlag::flags; \
282-
while (flag->_name != NULL) { \
282+
while (flag->name() != NULL) { \
283283
if (flag->is_ ## flagType()) { \
284284
if (flag->is_unlocked()) { \
285285
Event ## eventType event; \
286-
event.set_name(flag->_name); \
286+
event.set_name(flag->name()); \
287287
event.set_value(flag->get_ ## flagType()); \
288288
event.set_origin(flag->get_origin()); \
289289
event.commit(); \

src/hotspot/share/jvmci/jvmciCompilerToVM.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ C2V_VMENTRY_NULL(jobject, getFlagValue, (JNIEnv* env, jobject c2vm, jobject name
237237
} else if (flag->is_double()) {
238238
RETURN_BOXED_DOUBLE(flag->get_double());
239239
} else {
240-
JVMCI_ERROR_NULL("VM flag %s has unsupported type %s", flag->_name, flag->_type);
240+
JVMCI_ERROR_NULL("VM flag %s has unsupported type %s", flag->name(), flag->type_string());
241241
}
242242
#undef RETURN_BOXED_LONG
243243
#undef RETURN_BOXED_DOUBLE

src/hotspot/share/jvmci/jvmci_globals.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,13 +23,14 @@
2323
*/
2424

2525
#include "precompiled.hpp"
26+
#include "gc/shared/gcConfig.hpp"
2627
#include "jvm.h"
2728
#include "jvmci/jvmci_globals.hpp"
28-
#include "gc/shared/gcConfig.hpp"
29-
#include "utilities/defaultStream.hpp"
30-
#include "utilities/ostream.hpp"
3129
#include "runtime/arguments.hpp"
30+
#include "runtime/flags/jvmFlagAccess.hpp"
3231
#include "runtime/globals_extension.hpp"
32+
#include "utilities/defaultStream.hpp"
33+
#include "utilities/ostream.hpp"
3334

3435
fileStream* JVMCIGlobals::_jni_config_file = NULL;
3536

@@ -187,7 +188,7 @@ bool JVMCIGlobals::enable_jvmci_product_mode(JVMFlag::Flags origin) {
187188

188189
bool value = true;
189190
JVMFlag *jvmciEnableFlag = JVMFlag::find_flag("EnableJVMCIProduct");
190-
if (JVMFlag::boolAtPut(jvmciEnableFlag, &value, origin) != JVMFlag::SUCCESS) {
191+
if (JVMFlagAccess::boolAtPut(jvmciEnableFlag, &value, origin) != JVMFlag::SUCCESS) {
191192
return false;
192193
}
193194

src/hotspot/share/memory/universe.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@
5959
#include "prims/resolvedMethodTable.hpp"
6060
#include "runtime/arguments.hpp"
6161
#include "runtime/atomic.hpp"
62-
#include "runtime/flags/jvmFlagConstraintList.hpp"
62+
#include "runtime/flags/jvmFlagLimit.hpp"
6363
#include "runtime/handles.inline.hpp"
6464
#include "runtime/init.hpp"
6565
#include "runtime/java.hpp"
@@ -753,7 +753,7 @@ jint universe_init() {
753753
AOTLoader::universe_init();
754754

755755
// Checks 'AfterMemoryInit' constraints.
756-
if (!JVMFlagConstraintList::check_constraints(JVMFlagConstraint::AfterMemoryInit)) {
756+
if (!JVMFlagLimit::check_all_constraints(JVMFlagConstraintPhase::AfterMemoryInit)) {
757757
return JNI_EINVAL;
758758
}
759759

src/hotspot/share/prims/whitebox.cpp

Lines changed: 25 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,7 @@
6666
#include "runtime/deoptimization.hpp"
6767
#include "runtime/fieldDescriptor.inline.hpp"
6868
#include "runtime/flags/jvmFlag.hpp"
69+
#include "runtime/flags/jvmFlagAccess.hpp"
6970
#include "runtime/frame.inline.hpp"
7071
#include "runtime/handles.inline.hpp"
7172
#include "runtime/handshake.hpp"
@@ -1205,30 +1206,30 @@ WB_ENTRY(void, WB_ClearMethodState(JNIEnv* env, jobject o, jobject method))
12051206
}
12061207
WB_END
12071208

1208-
template <typename T>
1209-
static bool GetVMFlag(JavaThread* thread, JNIEnv* env, jstring name, T* value, JVMFlag::Error (*TAt)(const JVMFlag*, T*)) {
1209+
template <typename T, int type_enum>
1210+
static bool GetVMFlag(JavaThread* thread, JNIEnv* env, jstring name, T* value) {
12101211
if (name == NULL) {
12111212
return false;
12121213
}
12131214
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
12141215
const char* flag_name = env->GetStringUTFChars(name, NULL);
12151216
CHECK_JNI_EXCEPTION_(env, false);
12161217
const JVMFlag* flag = JVMFlag::find_declared_flag(flag_name);
1217-
JVMFlag::Error result = (*TAt)(flag, value);
1218+
JVMFlag::Error result = JVMFlagAccess::get<T, type_enum>(flag, value);
12181219
env->ReleaseStringUTFChars(name, flag_name);
12191220
return (result == JVMFlag::SUCCESS);
12201221
}
12211222

1222-
template <typename T>
1223-
static bool SetVMFlag(JavaThread* thread, JNIEnv* env, jstring name, T* value, JVMFlag::Error (*TAtPut)(JVMFlag* flag, T*, JVMFlag::Flags)) {
1223+
template <typename T, int type_enum>
1224+
static bool SetVMFlag(JavaThread* thread, JNIEnv* env, jstring name, T* value) {
12241225
if (name == NULL) {
12251226
return false;
12261227
}
12271228
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
12281229
const char* flag_name = env->GetStringUTFChars(name, NULL);
12291230
CHECK_JNI_EXCEPTION_(env, false);
12301231
JVMFlag* flag = JVMFlag::find_flag(flag_name);
1231-
JVMFlag::Error result = (*TAtPut)(flag, value, JVMFlag::INTERNAL);
1232+
JVMFlag::Error result = JVMFlagAccess::set<T, type_enum>(flag, value, JVMFlag::INTERNAL);
12321233
env->ReleaseStringUTFChars(name, flag_name);
12331234
return (result == JVMFlag::SUCCESS);
12341235
}
@@ -1284,7 +1285,7 @@ WB_END
12841285

12851286
WB_ENTRY(jobject, WB_GetBooleanVMFlag(JNIEnv* env, jobject o, jstring name))
12861287
bool result;
1287-
if (GetVMFlag <bool> (thread, env, name, &result, &JVMFlag::boolAt)) {
1288+
if (GetVMFlag <JVM_FLAG_TYPE(bool)> (thread, env, name, &result)) {
12881289
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
12891290
return booleanBox(thread, env, result);
12901291
}
@@ -1293,7 +1294,7 @@ WB_END
12931294

12941295
WB_ENTRY(jobject, WB_GetIntVMFlag(JNIEnv* env, jobject o, jstring name))
12951296
int result;
1296-
if (GetVMFlag <int> (thread, env, name, &result, &JVMFlag::intAt)) {
1297+
if (GetVMFlag <JVM_FLAG_TYPE(int)> (thread, env, name, &result)) {
12971298
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
12981299
return longBox(thread, env, result);
12991300
}
@@ -1302,7 +1303,7 @@ WB_END
13021303

13031304
WB_ENTRY(jobject, WB_GetUintVMFlag(JNIEnv* env, jobject o, jstring name))
13041305
uint result;
1305-
if (GetVMFlag <uint> (thread, env, name, &result, &JVMFlag::uintAt)) {
1306+
if (GetVMFlag <JVM_FLAG_TYPE(uint)> (thread, env, name, &result)) {
13061307
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
13071308
return longBox(thread, env, result);
13081309
}
@@ -1311,7 +1312,7 @@ WB_END
13111312

13121313
WB_ENTRY(jobject, WB_GetIntxVMFlag(JNIEnv* env, jobject o, jstring name))
13131314
intx result;
1314-
if (GetVMFlag <intx> (thread, env, name, &result, &JVMFlag::intxAt)) {
1315+
if (GetVMFlag <JVM_FLAG_TYPE(intx)> (thread, env, name, &result)) {
13151316
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
13161317
return longBox(thread, env, result);
13171318
}
@@ -1320,7 +1321,7 @@ WB_END
13201321

13211322
WB_ENTRY(jobject, WB_GetUintxVMFlag(JNIEnv* env, jobject o, jstring name))
13221323
uintx result;
1323-
if (GetVMFlag <uintx> (thread, env, name, &result, &JVMFlag::uintxAt)) {
1324+
if (GetVMFlag <JVM_FLAG_TYPE(uintx)> (thread, env, name, &result)) {
13241325
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
13251326
return longBox(thread, env, result);
13261327
}
@@ -1329,7 +1330,7 @@ WB_END
13291330

13301331
WB_ENTRY(jobject, WB_GetUint64VMFlag(JNIEnv* env, jobject o, jstring name))
13311332
uint64_t result;
1332-
if (GetVMFlag <uint64_t> (thread, env, name, &result, &JVMFlag::uint64_tAt)) {
1333+
if (GetVMFlag <JVM_FLAG_TYPE(uint64_t)> (thread, env, name, &result)) {
13331334
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
13341335
return longBox(thread, env, result);
13351336
}
@@ -1338,7 +1339,7 @@ WB_END
13381339

13391340
WB_ENTRY(jobject, WB_GetSizeTVMFlag(JNIEnv* env, jobject o, jstring name))
13401341
size_t result;
1341-
if (GetVMFlag <size_t> (thread, env, name, &result, &JVMFlag::size_tAt)) {
1342+
if (GetVMFlag <JVM_FLAG_TYPE(size_t)> (thread, env, name, &result)) {
13421343
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
13431344
return longBox(thread, env, result);
13441345
}
@@ -1347,7 +1348,7 @@ WB_END
13471348

13481349
WB_ENTRY(jobject, WB_GetDoubleVMFlag(JNIEnv* env, jobject o, jstring name))
13491350
double result;
1350-
if (GetVMFlag <double> (thread, env, name, &result, &JVMFlag::doubleAt)) {
1351+
if (GetVMFlag <JVM_FLAG_TYPE(double)> (thread, env, name, &result)) {
13511352
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
13521353
return doubleBox(thread, env, result);
13531354
}
@@ -1356,7 +1357,7 @@ WB_END
13561357

13571358
WB_ENTRY(jstring, WB_GetStringVMFlag(JNIEnv* env, jobject o, jstring name))
13581359
ccstr ccstrResult;
1359-
if (GetVMFlag <ccstr> (thread, env, name, &ccstrResult, &JVMFlag::ccstrAt)) {
1360+
if (GetVMFlag <JVM_FLAG_TYPE(ccstr)> (thread, env, name, &ccstrResult)) {
13601361
ThreadToNativeFromVM ttnfv(thread); // can't be in VM when we call JNI
13611362
jstring result = env->NewStringUTF(ccstrResult);
13621363
CHECK_JNI_EXCEPTION_(env, NULL);
@@ -1367,42 +1368,42 @@ WB_END
13671368

13681369
WB_ENTRY(void, WB_SetBooleanVMFlag(JNIEnv* env, jobject o, jstring name, jboolean value))
13691370
bool result = value == JNI_TRUE ? true : false;
1370-
SetVMFlag <bool> (thread, env, name, &result, &JVMFlag::boolAtPut);
1371+
SetVMFlag <JVM_FLAG_TYPE(bool)> (thread, env, name, &result);
13711372
WB_END
13721373

13731374
WB_ENTRY(void, WB_SetIntVMFlag(JNIEnv* env, jobject o, jstring name, jlong value))
13741375
int result = value;
1375-
SetVMFlag <int> (thread, env, name, &result, &JVMFlag::intAtPut);
1376+
SetVMFlag <JVM_FLAG_TYPE(int)> (thread, env, name, &result);
13761377
WB_END
13771378

13781379
WB_ENTRY(void, WB_SetUintVMFlag(JNIEnv* env, jobject o, jstring name, jlong value))
13791380
uint result = value;
1380-
SetVMFlag <uint> (thread, env, name, &result, &JVMFlag::uintAtPut);
1381+
SetVMFlag <JVM_FLAG_TYPE(uint)> (thread, env, name, &result);
13811382
WB_END
13821383

13831384
WB_ENTRY(void, WB_SetIntxVMFlag(JNIEnv* env, jobject o, jstring name, jlong value))
13841385
intx result = value;
1385-
SetVMFlag <intx> (thread, env, name, &result, &JVMFlag::intxAtPut);
1386+
SetVMFlag <JVM_FLAG_TYPE(intx)> (thread, env, name, &result);
13861387
WB_END
13871388

13881389
WB_ENTRY(void, WB_SetUintxVMFlag(JNIEnv* env, jobject o, jstring name, jlong value))
13891390
uintx result = value;
1390-
SetVMFlag <uintx> (thread, env, name, &result, &JVMFlag::uintxAtPut);
1391+
SetVMFlag <JVM_FLAG_TYPE(uintx)> (thread, env, name, &result);
13911392
WB_END
13921393

13931394
WB_ENTRY(void, WB_SetUint64VMFlag(JNIEnv* env, jobject o, jstring name, jlong value))
13941395
uint64_t result = value;
1395-
SetVMFlag <uint64_t> (thread, env, name, &result, &JVMFlag::uint64_tAtPut);
1396+
SetVMFlag <JVM_FLAG_TYPE(uint64_t)> (thread, env, name, &result);
13961397
WB_END
13971398

13981399
WB_ENTRY(void, WB_SetSizeTVMFlag(JNIEnv* env, jobject o, jstring name, jlong value))
13991400
size_t result = value;
1400-
SetVMFlag <size_t> (thread, env, name, &result, &JVMFlag::size_tAtPut);
1401+
SetVMFlag <JVM_FLAG_TYPE(size_t)> (thread, env, name, &result);
14011402
WB_END
14021403

14031404
WB_ENTRY(void, WB_SetDoubleVMFlag(JNIEnv* env, jobject o, jstring name, jdouble value))
14041405
double result = value;
1405-
SetVMFlag <double> (thread, env, name, &result, &JVMFlag::doubleAtPut);
1406+
SetVMFlag <JVM_FLAG_TYPE(double)> (thread, env, name, &result);
14061407
WB_END
14071408

14081409
WB_ENTRY(void, WB_SetStringVMFlag(JNIEnv* env, jobject o, jstring name, jstring value))
@@ -1419,7 +1420,7 @@ WB_ENTRY(void, WB_SetStringVMFlag(JNIEnv* env, jobject o, jstring name, jstring
14191420
bool needFree;
14201421
{
14211422
ThreadInVMfromNative ttvfn(thread); // back to VM
1422-
needFree = SetVMFlag <ccstr> (thread, env, name, &ccstrResult, &JVMFlag::ccstrAtPut);
1423+
needFree = SetVMFlag <JVM_FLAG_TYPE(ccstr)> (thread, env, name, &ccstrResult);
14231424
}
14241425
if (value != NULL) {
14251426
env->ReleaseStringUTFChars(value, ccstrValue);

src/hotspot/share/runtime/arguments.cpp

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,7 @@
4141
#include "prims/jvmtiExport.hpp"
4242
#include "runtime/arguments.hpp"
4343
#include "runtime/flags/jvmFlag.hpp"
44-
#include "runtime/flags/jvmFlagConstraintList.hpp"
45-
#include "runtime/flags/jvmFlagRangeList.hpp"
44+
#include "runtime/flags/jvmFlagAccess.hpp"
4645
#include "runtime/globals_extension.hpp"
4746
#include "runtime/java.hpp"
4847
#include "runtime/os.inline.hpp"
@@ -877,7 +876,7 @@ void Arguments::describe_range_error(ArgsRange errcode) {
877876
}
878877

879878
static bool set_bool_flag(JVMFlag* flag, bool value, JVMFlag::Flags origin) {
880-
if (JVMFlag::boolAtPut(flag, &value, origin) == JVMFlag::SUCCESS) {
879+
if (JVMFlagAccess::boolAtPut(flag, &value, origin) == JVMFlag::SUCCESS) {
881880
return true;
882881
} else {
883882
return false;
@@ -892,7 +891,7 @@ static bool set_fp_numeric_flag(JVMFlag* flag, char* value, JVMFlag::Flags origi
892891
return false;
893892
}
894893

895-
if (JVMFlag::doubleAtPut(flag, &v, origin) == JVMFlag::SUCCESS) {
894+
if (JVMFlagAccess::doubleAtPut(flag, &v, origin) == JVMFlag::SUCCESS) {
896895
return true;
897896
}
898897
return false;
@@ -924,43 +923,43 @@ static bool set_numeric_flag(JVMFlag* flag, char* value, JVMFlag::Flags origin)
924923
if (is_neg) {
925924
int_v = -int_v;
926925
}
927-
return JVMFlag::intAtPut(flag, &int_v, origin) == JVMFlag::SUCCESS;
926+
return JVMFlagAccess::intAtPut(flag, &int_v, origin) == JVMFlag::SUCCESS;
928927
} else if (flag->is_uint()) {
929928
uint uint_v = (uint) v;
930-
return JVMFlag::uintAtPut(flag, &uint_v, origin) == JVMFlag::SUCCESS;
929+
return JVMFlagAccess::uintAtPut(flag, &uint_v, origin) == JVMFlag::SUCCESS;
931930
} else if (flag->is_intx()) {
932931
intx_v = (intx) v;
933932
if (is_neg) {
934933
intx_v = -intx_v;
935934
}
936-
return JVMFlag::intxAtPut(flag, &intx_v, origin) == JVMFlag::SUCCESS;
935+
return JVMFlagAccess::intxAtPut(flag, &intx_v, origin) == JVMFlag::SUCCESS;
937936
} else if (flag->is_uintx()) {
938937
uintx uintx_v = (uintx) v;
939-
return JVMFlag::uintxAtPut(flag, &uintx_v, origin) == JVMFlag::SUCCESS;
938+
return JVMFlagAccess::uintxAtPut(flag, &uintx_v, origin) == JVMFlag::SUCCESS;
940939
} else if (flag->is_uint64_t()) {
941940
uint64_t uint64_t_v = (uint64_t) v;
942-
return JVMFlag::uint64_tAtPut(flag, &uint64_t_v, origin) == JVMFlag::SUCCESS;
941+
return JVMFlagAccess::uint64_tAtPut(flag, &uint64_t_v, origin) == JVMFlag::SUCCESS;
943942
} else if (flag->is_size_t()) {
944943
size_t size_t_v = (size_t) v;
945-
return JVMFlag::size_tAtPut(flag, &size_t_v, origin) == JVMFlag::SUCCESS;
944+
return JVMFlagAccess::size_tAtPut(flag, &size_t_v, origin) == JVMFlag::SUCCESS;
946945
} else if (flag->is_double()) {
947946
double double_v = (double) v;
948-
return JVMFlag::doubleAtPut(flag, &double_v, origin) == JVMFlag::SUCCESS;
947+
return JVMFlagAccess::doubleAtPut(flag, &double_v, origin) == JVMFlag::SUCCESS;
949948
} else {
950949
return false;
951950
}
952951
}
953952

954953
static bool set_string_flag(JVMFlag* flag, const char* value, JVMFlag::Flags origin) {
955-
if (JVMFlag::ccstrAtPut(flag, &value, origin) != JVMFlag::SUCCESS) return false;
954+
if (JVMFlagAccess::ccstrAtPut(flag, &value, origin) != JVMFlag::SUCCESS) return false;
956955
// Contract: JVMFlag always returns a pointer that needs freeing.
957956
FREE_C_HEAP_ARRAY(char, value);
958957
return true;
959958
}
960959

961960
static bool append_to_string_flag(JVMFlag* flag, const char* new_value, JVMFlag::Flags origin) {
962961
const char* old_value = "";
963-
if (JVMFlag::ccstrAt(flag, &old_value) != JVMFlag::SUCCESS) return false;
962+
if (JVMFlagAccess::ccstrAt(flag, &old_value) != JVMFlag::SUCCESS) return false;
964963
size_t old_len = old_value != NULL ? strlen(old_value) : 0;
965964
size_t new_len = strlen(new_value);
966965
const char* value;
@@ -977,7 +976,7 @@ static bool append_to_string_flag(JVMFlag* flag, const char* new_value, JVMFlag:
977976
value = buf;
978977
free_this_too = buf;
979978
}
980-
(void) JVMFlag::ccstrAtPut(flag, &value, origin);
979+
(void) JVMFlagAccess::ccstrAtPut(flag, &value, origin);
981980
// JVMFlag always returns a pointer that needs freeing.
982981
FREE_C_HEAP_ARRAY(char, value);
983982
// JVMFlag made its own copy, so I must delete my own temp. buffer.
@@ -1355,7 +1354,7 @@ bool Arguments::process_argument(const char* arg,
13551354
jio_fprintf(defaultStream::error_stream(),
13561355
"Did you mean '%s%s%s'? ",
13571356
(fuzzy_matched->is_bool()) ? "(+/-)" : "",
1358-
fuzzy_matched->_name,
1357+
fuzzy_matched->name(),
13591358
(fuzzy_matched->is_bool()) ? "" : "=<value>");
13601359
}
13611360
}

0 commit comments

Comments
 (0)