--- old/src/hotspot/share/services/management.cpp 2020-04-05 21:35:28.303338896 -0700 +++ new/src/hotspot/share/services/management.cpp 2020-04-05 21:35:27.943325344 -0700 @@ -854,10 +854,9 @@ static jint get_num_flags() { // last flag entry is always NULL, so subtract 1 - int nFlags = (int) JVMFlag::numFlags - 1; int count = 0; - for (int i = 0; i < nFlags; i++) { - JVMFlag* flag = &JVMFlag::flags[i]; + JVMFlag* flag; + JVMFLAG_FOR_EACH(flag) { // Exclude the locked (diagnostic, experimental) flags if (flag->is_unlocked() || flag->is_unlocker()) { count++; @@ -1398,22 +1397,21 @@ // Returns a String array of all VM global flag names JVM_ENTRY(jobjectArray, jmm_GetVMGlobalNames(JNIEnv *env)) - // last flag entry is always NULL, so subtract 1 - int nFlags = (int) JVMFlag::numFlags - 1; + int nFlags = JVMFlag::num_flags(); // allocate a temp array objArrayOop r = oopFactory::new_objArray(SystemDictionary::String_klass(), nFlags, CHECK_NULL); objArrayHandle flags_ah(THREAD, r); int num_entries = 0; - for (int i = 0; i < nFlags; i++) { - JVMFlag* flag = &JVMFlag::flags[i]; + JVMFlag* flag; + JVMFLAG_FOR_EACH(flag) { // Exclude notproduct and develop flags in product builds. if (flag->is_constant_in_binary()) { continue; } // Exclude the locked (experimental, diagnostic) flags if (flag->is_unlocked() || flag->is_unlocker()) { - Handle s = java_lang_String::create_from_str(flag->_name, CHECK_NULL); + Handle s = java_lang_String::create_from_str(flag->name(), CHECK_NULL); flags_ah->obj_at_put(num_entries, s()); num_entries++; } @@ -1437,7 +1435,7 @@ bool add_global_entry(JNIEnv* env, Handle name, jmmVMGlobal *global, JVMFlag *flag, TRAPS) { Handle flag_name; if (name() == NULL) { - flag_name = java_lang_String::create_from_str(flag->_name, CHECK_false); + flag_name = java_lang_String::create_from_str(flag->name(), CHECK_false); } else { flag_name = name; } @@ -1559,11 +1557,13 @@ // return all globals if names == NULL // last flag entry is always NULL, so subtract 1 - int nFlags = (int) JVMFlag::numFlags - 1; Handle null_h; int num_entries = 0; - for (int i = 0; i < nFlags && num_entries < count; i++) { - JVMFlag* flag = &JVMFlag::flags[i]; + JVMFlag* flag; + JVMFLAG_FOR_EACH(flag) { + if (num_entries >= count) { + break; + } // Exclude notproduct and develop flags in product builds. if (flag->is_constant_in_binary()) { continue;