955 |
955 |
956 return match; |
956 return match; |
957 } |
957 } |
958 |
958 |
959 // Returns the address of the index'th element |
959 // Returns the address of the index'th element |
960 static JVMFlag* address_of_flag(JVMFlagsWithType flag) { |
960 static JVMFlag* address_of_flag(JVMFlagsEnum flag) { |
961 assert((size_t)flag < JVMFlag::numFlags, "bad command line flag index"); |
961 assert((size_t)flag < JVMFlag::numFlags, "bad command line flag index"); |
962 return &JVMFlag::flags[flag]; |
962 return &JVMFlag::flags[flag]; |
963 } |
963 } |
964 |
964 |
965 bool JVMFlagEx::is_default(JVMFlags flag) { |
965 bool JVMFlagEx::is_default(JVMFlagsEnum flag) { |
966 assert((size_t)flag < JVMFlag::numFlags, "bad command line flag index"); |
966 assert((size_t)flag < JVMFlag::numFlags, "bad command line flag index"); |
967 JVMFlag* f = &JVMFlag::flags[flag]; |
967 JVMFlag* f = &JVMFlag::flags[flag]; |
968 return f->is_default(); |
968 return f->is_default(); |
969 } |
969 } |
970 |
970 |
971 bool JVMFlagEx::is_ergo(JVMFlags flag) { |
971 bool JVMFlagEx::is_ergo(JVMFlagsEnum flag) { |
972 assert((size_t)flag < JVMFlag::numFlags, "bad command line flag index"); |
972 assert((size_t)flag < JVMFlag::numFlags, "bad command line flag index"); |
973 JVMFlag* f = &JVMFlag::flags[flag]; |
973 JVMFlag* f = &JVMFlag::flags[flag]; |
974 return f->is_ergonomic(); |
974 return f->is_ergonomic(); |
975 } |
975 } |
976 |
976 |
977 bool JVMFlagEx::is_cmdline(JVMFlags flag) { |
977 bool JVMFlagEx::is_cmdline(JVMFlagsEnum flag) { |
978 assert((size_t)flag < JVMFlag::numFlags, "bad command line flag index"); |
978 assert((size_t)flag < JVMFlag::numFlags, "bad command line flag index"); |
979 JVMFlag* f = &JVMFlag::flags[flag]; |
979 JVMFlag* f = &JVMFlag::flags[flag]; |
980 return f->is_command_line(); |
980 return f->is_command_line(); |
981 } |
981 } |
982 |
982 |
985 if (result == NULL) return false; |
985 if (result == NULL) return false; |
986 *value = result->is_command_line(); |
986 *value = result->is_command_line(); |
987 return true; |
987 return true; |
988 } |
988 } |
989 |
989 |
990 void JVMFlagEx::setOnCmdLine(JVMFlagsWithType flag) { |
990 void JVMFlagEx::setOnCmdLine(JVMFlagsEnum flag) { |
991 JVMFlag* faddr = address_of_flag(flag); |
991 JVMFlag* faddr = address_of_flag(flag); |
992 assert(faddr != NULL, "Unknown flag"); |
992 assert(faddr != NULL, "Unknown flag"); |
993 faddr->set_command_line(); |
993 faddr->set_command_line(); |
994 } |
994 } |
995 |
995 |
1038 JVMFlag::Error JVMFlag::boolAtPut(const char* name, size_t len, bool* value, JVMFlag::Flags origin) { |
1038 JVMFlag::Error JVMFlag::boolAtPut(const char* name, size_t len, bool* value, JVMFlag::Flags origin) { |
1039 JVMFlag* result = JVMFlag::find_flag(name, len); |
1039 JVMFlag* result = JVMFlag::find_flag(name, len); |
1040 return boolAtPut(result, value, origin); |
1040 return boolAtPut(result, value, origin); |
1041 } |
1041 } |
1042 |
1042 |
1043 JVMFlag::Error JVMFlagEx::boolAtPut(JVMFlagsWithType flag, bool value, JVMFlag::Flags origin) { |
1043 JVMFlag::Error JVMFlagEx::boolAtPut(JVMFlagsEnum flag, bool value, JVMFlag::Flags origin) { |
1044 JVMFlag* faddr = address_of_flag(flag); |
1044 JVMFlag* faddr = address_of_flag(flag); |
1045 guarantee(faddr != NULL && faddr->is_bool(), "wrong flag type"); |
1045 guarantee(faddr != NULL && faddr->is_bool(), "wrong flag type"); |
1046 return JVMFlag::boolAtPut(faddr, &value, origin); |
1046 return JVMFlag::boolAtPut(faddr, &value, origin); |
1047 } |
1047 } |
1048 |
1048 |
1087 JVMFlag::Error JVMFlag::intAtPut(const char* name, size_t len, int* value, JVMFlag::Flags origin) { |
1087 JVMFlag::Error JVMFlag::intAtPut(const char* name, size_t len, int* value, JVMFlag::Flags origin) { |
1088 JVMFlag* result = JVMFlag::find_flag(name, len); |
1088 JVMFlag* result = JVMFlag::find_flag(name, len); |
1089 return intAtPut(result, value, origin); |
1089 return intAtPut(result, value, origin); |
1090 } |
1090 } |
1091 |
1091 |
1092 JVMFlag::Error JVMFlagEx::intAtPut(JVMFlagsWithType flag, int value, JVMFlag::Flags origin) { |
1092 JVMFlag::Error JVMFlagEx::intAtPut(JVMFlagsEnum flag, int value, JVMFlag::Flags origin) { |
1093 JVMFlag* faddr = address_of_flag(flag); |
1093 JVMFlag* faddr = address_of_flag(flag); |
1094 guarantee(faddr != NULL && faddr->is_int(), "wrong flag type"); |
1094 guarantee(faddr != NULL && faddr->is_int(), "wrong flag type"); |
1095 return JVMFlag::intAtPut(faddr, &value, origin); |
1095 return JVMFlag::intAtPut(faddr, &value, origin); |
1096 } |
1096 } |
1097 |
1097 |
1136 JVMFlag::Error JVMFlag::uintAtPut(const char* name, size_t len, uint* value, JVMFlag::Flags origin) { |
1136 JVMFlag::Error JVMFlag::uintAtPut(const char* name, size_t len, uint* value, JVMFlag::Flags origin) { |
1137 JVMFlag* result = JVMFlag::find_flag(name, len); |
1137 JVMFlag* result = JVMFlag::find_flag(name, len); |
1138 return uintAtPut(result, value, origin); |
1138 return uintAtPut(result, value, origin); |
1139 } |
1139 } |
1140 |
1140 |
1141 JVMFlag::Error JVMFlagEx::uintAtPut(JVMFlagsWithType flag, uint value, JVMFlag::Flags origin) { |
1141 JVMFlag::Error JVMFlagEx::uintAtPut(JVMFlagsEnum flag, uint value, JVMFlag::Flags origin) { |
1142 JVMFlag* faddr = address_of_flag(flag); |
1142 JVMFlag* faddr = address_of_flag(flag); |
1143 guarantee(faddr != NULL && faddr->is_uint(), "wrong flag type"); |
1143 guarantee(faddr != NULL && faddr->is_uint(), "wrong flag type"); |
1144 return JVMFlag::uintAtPut(faddr, &value, origin); |
1144 return JVMFlag::uintAtPut(faddr, &value, origin); |
1145 } |
1145 } |
1146 |
1146 |
1185 JVMFlag::Error JVMFlag::intxAtPut(const char* name, size_t len, intx* value, JVMFlag::Flags origin) { |
1185 JVMFlag::Error JVMFlag::intxAtPut(const char* name, size_t len, intx* value, JVMFlag::Flags origin) { |
1186 JVMFlag* result = JVMFlag::find_flag(name, len); |
1186 JVMFlag* result = JVMFlag::find_flag(name, len); |
1187 return intxAtPut(result, value, origin); |
1187 return intxAtPut(result, value, origin); |
1188 } |
1188 } |
1189 |
1189 |
1190 JVMFlag::Error JVMFlagEx::intxAtPut(JVMFlagsWithType flag, intx value, JVMFlag::Flags origin) { |
1190 JVMFlag::Error JVMFlagEx::intxAtPut(JVMFlagsEnum flag, intx value, JVMFlag::Flags origin) { |
1191 JVMFlag* faddr = address_of_flag(flag); |
1191 JVMFlag* faddr = address_of_flag(flag); |
1192 guarantee(faddr != NULL && faddr->is_intx(), "wrong flag type"); |
1192 guarantee(faddr != NULL && faddr->is_intx(), "wrong flag type"); |
1193 return JVMFlag::intxAtPut(faddr, &value, origin); |
1193 return JVMFlag::intxAtPut(faddr, &value, origin); |
1194 } |
1194 } |
1195 |
1195 |
1234 JVMFlag::Error JVMFlag::uintxAtPut(const char* name, size_t len, uintx* value, JVMFlag::Flags origin) { |
1234 JVMFlag::Error JVMFlag::uintxAtPut(const char* name, size_t len, uintx* value, JVMFlag::Flags origin) { |
1235 JVMFlag* result = JVMFlag::find_flag(name, len); |
1235 JVMFlag* result = JVMFlag::find_flag(name, len); |
1236 return uintxAtPut(result, value, origin); |
1236 return uintxAtPut(result, value, origin); |
1237 } |
1237 } |
1238 |
1238 |
1239 JVMFlag::Error JVMFlagEx::uintxAtPut(JVMFlagsWithType flag, uintx value, JVMFlag::Flags origin) { |
1239 JVMFlag::Error JVMFlagEx::uintxAtPut(JVMFlagsEnum flag, uintx value, JVMFlag::Flags origin) { |
1240 JVMFlag* faddr = address_of_flag(flag); |
1240 JVMFlag* faddr = address_of_flag(flag); |
1241 guarantee(faddr != NULL && faddr->is_uintx(), "wrong flag type"); |
1241 guarantee(faddr != NULL && faddr->is_uintx(), "wrong flag type"); |
1242 return JVMFlag::uintxAtPut(faddr, &value, origin); |
1242 return JVMFlag::uintxAtPut(faddr, &value, origin); |
1243 } |
1243 } |
1244 |
1244 |
1283 JVMFlag::Error JVMFlag::uint64_tAtPut(const char* name, size_t len, uint64_t* value, JVMFlag::Flags origin) { |
1283 JVMFlag::Error JVMFlag::uint64_tAtPut(const char* name, size_t len, uint64_t* value, JVMFlag::Flags origin) { |
1284 JVMFlag* result = JVMFlag::find_flag(name, len); |
1284 JVMFlag* result = JVMFlag::find_flag(name, len); |
1285 return uint64_tAtPut(result, value, origin); |
1285 return uint64_tAtPut(result, value, origin); |
1286 } |
1286 } |
1287 |
1287 |
1288 JVMFlag::Error JVMFlagEx::uint64_tAtPut(JVMFlagsWithType flag, uint64_t value, JVMFlag::Flags origin) { |
1288 JVMFlag::Error JVMFlagEx::uint64_tAtPut(JVMFlagsEnum flag, uint64_t value, JVMFlag::Flags origin) { |
1289 JVMFlag* faddr = address_of_flag(flag); |
1289 JVMFlag* faddr = address_of_flag(flag); |
1290 guarantee(faddr != NULL && faddr->is_uint64_t(), "wrong flag type"); |
1290 guarantee(faddr != NULL && faddr->is_uint64_t(), "wrong flag type"); |
1291 return JVMFlag::uint64_tAtPut(faddr, &value, origin); |
1291 return JVMFlag::uint64_tAtPut(faddr, &value, origin); |
1292 } |
1292 } |
1293 |
1293 |
1333 JVMFlag::Error JVMFlag::size_tAtPut(const char* name, size_t len, size_t* value, JVMFlag::Flags origin) { |
1333 JVMFlag::Error JVMFlag::size_tAtPut(const char* name, size_t len, size_t* value, JVMFlag::Flags origin) { |
1334 JVMFlag* result = JVMFlag::find_flag(name, len); |
1334 JVMFlag* result = JVMFlag::find_flag(name, len); |
1335 return size_tAtPut(result, value, origin); |
1335 return size_tAtPut(result, value, origin); |
1336 } |
1336 } |
1337 |
1337 |
1338 JVMFlag::Error JVMFlagEx::size_tAtPut(JVMFlagsWithType flag, size_t value, JVMFlag::Flags origin) { |
1338 JVMFlag::Error JVMFlagEx::size_tAtPut(JVMFlagsEnum flag, size_t value, JVMFlag::Flags origin) { |
1339 JVMFlag* faddr = address_of_flag(flag); |
1339 JVMFlag* faddr = address_of_flag(flag); |
1340 guarantee(faddr != NULL && faddr->is_size_t(), "wrong flag type"); |
1340 guarantee(faddr != NULL && faddr->is_size_t(), "wrong flag type"); |
1341 return JVMFlag::size_tAtPut(faddr, &value, origin); |
1341 return JVMFlag::size_tAtPut(faddr, &value, origin); |
1342 } |
1342 } |
1343 |
1343 |
1382 JVMFlag::Error JVMFlag::doubleAtPut(const char* name, size_t len, double* value, JVMFlag::Flags origin) { |
1382 JVMFlag::Error JVMFlag::doubleAtPut(const char* name, size_t len, double* value, JVMFlag::Flags origin) { |
1383 JVMFlag* result = JVMFlag::find_flag(name, len); |
1383 JVMFlag* result = JVMFlag::find_flag(name, len); |
1384 return doubleAtPut(result, value, origin); |
1384 return doubleAtPut(result, value, origin); |
1385 } |
1385 } |
1386 |
1386 |
1387 JVMFlag::Error JVMFlagEx::doubleAtPut(JVMFlagsWithType flag, double value, JVMFlag::Flags origin) { |
1387 JVMFlag::Error JVMFlagEx::doubleAtPut(JVMFlagsEnum flag, double value, JVMFlag::Flags origin) { |
1388 JVMFlag* faddr = address_of_flag(flag); |
1388 JVMFlag* faddr = address_of_flag(flag); |
1389 guarantee(faddr != NULL && faddr->is_double(), "wrong flag type"); |
1389 guarantee(faddr != NULL && faddr->is_double(), "wrong flag type"); |
1390 return JVMFlag::doubleAtPut(faddr, &value, origin); |
1390 return JVMFlag::doubleAtPut(faddr, &value, origin); |
1391 } |
1391 } |
1392 |
1392 |
1416 *value = old_value; |
1416 *value = old_value; |
1417 result->set_origin(origin); |
1417 result->set_origin(origin); |
1418 return check; |
1418 return check; |
1419 } |
1419 } |
1420 |
1420 |
1421 JVMFlag::Error JVMFlagEx::ccstrAtPut(JVMFlagsWithType flag, ccstr value, JVMFlag::Flags origin) { |
1421 JVMFlag::Error JVMFlagEx::ccstrAtPut(JVMFlagsEnum flag, ccstr value, JVMFlag::Flags origin) { |
1422 JVMFlag* faddr = address_of_flag(flag); |
1422 JVMFlag* faddr = address_of_flag(flag); |
1423 guarantee(faddr != NULL && faddr->is_ccstr(), "wrong flag type"); |
1423 guarantee(faddr != NULL && faddr->is_ccstr(), "wrong flag type"); |
1424 ccstr old_value = faddr->get_ccstr(); |
1424 ccstr old_value = faddr->get_ccstr(); |
1425 trace_flag_changed<EventStringFlagChanged, const char*>(faddr->_name, old_value, value, origin); |
1425 trace_flag_changed<EventStringFlagChanged, const char*>(faddr->_name, old_value, value, origin); |
1426 char* new_value = os::strdup_check_oom(value); |
1426 char* new_value = os::strdup_check_oom(value); |