611 { "TraceMonitorMismatch", "-Xlog:monitormismatch=info" }, 612 { "TraceSafepoint", "-Xlog:safepoint=debug" }, 613 { "TraceStartupTime", "-Xlog:startuptime" }, 614 { "TraceVMOperation", "-Xlog:vmoperation=debug" }, 615 { "PrintVtables", "-Xlog:vtables=debug" }, 616 { "VerboseVerification", "-Xlog:verification" }, 617 { NULL, NULL } 618 }; 619 #endif //PRODUCT 620 621 // Return true if "v" is less than "other", where "other" may be "undefined". 622 static bool version_less_than(JDK_Version v, JDK_Version other) { 623 assert(!v.is_undefined(), "must be defined"); 624 if (!other.is_undefined() && v.compare(other) >= 0) { 625 return false; 626 } else { 627 return true; 628 } 629 } 630 631 extern bool lookup_special_flag_ext(const char *flag_name, SpecialFlag& flag); 632 633 static bool lookup_special_flag(const char *flag_name, SpecialFlag& flag) { 634 // Allow extensions to have priority 635 if (lookup_special_flag_ext(flag_name, flag)) { 636 return true; 637 } 638 639 for (size_t i = 0; special_jvm_flags[i].name != NULL; i++) { 640 if ((strcmp(special_jvm_flags[i].name, flag_name) == 0)) { 641 flag = special_jvm_flags[i]; 642 return true; 643 } 644 } 645 return false; 646 } 647 648 bool Arguments::is_obsolete_flag(const char *flag_name, JDK_Version* version) { 649 assert(version != NULL, "Must provide a version buffer"); 650 SpecialFlag flag; 651 if (lookup_special_flag(flag_name, flag)) { 652 if (!flag.obsolete_in.is_undefined()) { 653 if (!version_less_than(JDK_Version::current(), flag.obsolete_in)) { 654 *version = flag.obsolete_in; 655 return true; 656 } 657 } 658 } | 611 { "TraceMonitorMismatch", "-Xlog:monitormismatch=info" }, 612 { "TraceSafepoint", "-Xlog:safepoint=debug" }, 613 { "TraceStartupTime", "-Xlog:startuptime" }, 614 { "TraceVMOperation", "-Xlog:vmoperation=debug" }, 615 { "PrintVtables", "-Xlog:vtables=debug" }, 616 { "VerboseVerification", "-Xlog:verification" }, 617 { NULL, NULL } 618 }; 619 #endif //PRODUCT 620 621 // Return true if "v" is less than "other", where "other" may be "undefined". 622 static bool version_less_than(JDK_Version v, JDK_Version other) { 623 assert(!v.is_undefined(), "must be defined"); 624 if (!other.is_undefined() && v.compare(other) >= 0) { 625 return false; 626 } else { 627 return true; 628 } 629 } 630 631 static bool lookup_special_flag(const char *flag_name, SpecialFlag& flag) { 632 for (size_t i = 0; special_jvm_flags[i].name != NULL; i++) { 633 if ((strcmp(special_jvm_flags[i].name, flag_name) == 0)) { 634 flag = special_jvm_flags[i]; 635 return true; 636 } 637 } 638 return false; 639 } 640 641 bool Arguments::is_obsolete_flag(const char *flag_name, JDK_Version* version) { 642 assert(version != NULL, "Must provide a version buffer"); 643 SpecialFlag flag; 644 if (lookup_special_flag(flag_name, flag)) { 645 if (!flag.obsolete_in.is_undefined()) { 646 if (!version_less_than(JDK_Version::current(), flag.obsolete_in)) { 647 *version = flag.obsolete_in; 648 return true; 649 } 650 } 651 } |