# HG changeset patch # User jiangli # Date 1413302973 14400 # Node ID 46140919bf90bbbe02a5f5dafe54ff4fe62b4b25 # Parent 8e15758b2e94e80c3356b933a690284934ef6892 8047934: Adding new API for unlocking diagnostic argument. Summary: New API for unlocking diagnostic argument. Reviewed-by: dholmes, ccheung, egahlin, iklam, bdelsart diff -r 8e15758b2e94 -r 46140919bf90 src/share/vm/runtime/arguments.cpp --- a/src/share/vm/runtime/arguments.cpp Wed Jan 08 08:34:02 2014 +0100 +++ b/src/share/vm/runtime/arguments.cpp Tue Oct 14 12:09:33 2014 -0400 @@ -3617,6 +3617,8 @@ bool settings_file_specified = false; bool needs_hotspotrc_warning = false; + ArgumentsExt::process_options(args); + const char* flags_file; int index; for (index = 0; index < args->nOptions; index++) { diff -r 8e15758b2e94 -r 46140919bf90 src/share/vm/runtime/arguments_ext.hpp --- a/src/share/vm/runtime/arguments_ext.hpp Wed Jan 08 08:34:02 2014 +0100 +++ b/src/share/vm/runtime/arguments_ext.hpp Tue Oct 14 12:09:33 2014 -0400 @@ -34,6 +34,7 @@ static inline bool check_gc_consistency_user(); static inline bool check_gc_consistency_ergo(); static inline bool check_vm_args_consistency(); + static void process_options(const JavaVMInitArgs* args) {} }; void ArgumentsExt::select_gc_ergonomically() { diff -r 8e15758b2e94 -r 46140919bf90 src/share/vm/runtime/globals.cpp --- a/src/share/vm/runtime/globals.cpp Wed Jan 08 08:34:02 2014 +0100 +++ b/src/share/vm/runtime/globals.cpp Tue Oct 14 12:09:33 2014 -0400 @@ -243,6 +243,11 @@ return is_unlocked_ext(); } +void Flag::unlock_diagnostic() { + assert(is_diagnostic(), "sanity"); + _flags = Flags(_flags & ~KIND_DIAGNOSTIC); +} + // Get custom message for this locked flag, or return NULL if // none is available. void Flag::get_locked_message(char* buf, int buflen) const { diff -r 8e15758b2e94 -r 46140919bf90 src/share/vm/runtime/globals.hpp --- a/src/share/vm/runtime/globals.hpp Wed Jan 08 08:34:02 2014 +0100 +++ b/src/share/vm/runtime/globals.hpp Tue Oct 14 12:09:33 2014 -0400 @@ -313,6 +313,8 @@ bool is_writeable_ext() const; bool is_external_ext() const; + void unlock_diagnostic(); + void get_locked_message(char*, int) const; void get_locked_message_ext(char*, int) const;