810 if (!validator.is_valid()) {
811 jio_snprintf(errorbuf, buf_size, "Unrecognized tag name in %s: %s", option2name(option), validator.what());
812 return false;
813 }
814 } else if (option == CompileCommandEnum::TraceMergeStores) {
815 TraceMergeStores::TagValidator validator(value, true);
816
817 if (!validator.is_valid()) {
818 jio_snprintf(errorbuf, buf_size, "Unrecognized tag name in %s: %s", option2name(option), validator.what());
819 return false;
820 }
821 } else if (option == CompileCommandEnum::PrintIdealPhase) {
822 PhaseNameValidator validator(value);
823
824 if (!validator.is_valid()) {
825 jio_snprintf(errorbuf, buf_size, "Unrecognized phase name in %s: %s", option2name(option), validator.what());
826 return false;
827 }
828 } else if (option == CompileCommandEnum::TestOptionList) {
829 // all values are ok
830 }
831 #endif
832 else {
833 assert(false, "Ccstrlist type option missing validator");
834 }
835
836 return register_command(matcher, option, errorbuf, buf_size, (ccstr) value);
837 } else {
838 jio_snprintf(errorbuf, buf_size, "Value cannot be read for option '%s' of type '%s'", ccname, type_str);
839 return false;
840 }
841 } else if (type == OptionType::Bool) {
842 char value[256];
843 if (*line == '\0') {
844 // Short version of a CompileCommand sets a boolean Option to true
845 // -XXCompileCommand=<Option>,<method pattern>
846 return register_command(matcher, option, errorbuf, buf_size,true);
847 }
848 if (sscanf(line, "%255[a-zA-Z]%n", value, &bytes_read) == 1) {
849 if (strcasecmp(value, "true") == 0) {
|
810 if (!validator.is_valid()) {
811 jio_snprintf(errorbuf, buf_size, "Unrecognized tag name in %s: %s", option2name(option), validator.what());
812 return false;
813 }
814 } else if (option == CompileCommandEnum::TraceMergeStores) {
815 TraceMergeStores::TagValidator validator(value, true);
816
817 if (!validator.is_valid()) {
818 jio_snprintf(errorbuf, buf_size, "Unrecognized tag name in %s: %s", option2name(option), validator.what());
819 return false;
820 }
821 } else if (option == CompileCommandEnum::PrintIdealPhase) {
822 PhaseNameValidator validator(value);
823
824 if (!validator.is_valid()) {
825 jio_snprintf(errorbuf, buf_size, "Unrecognized phase name in %s: %s", option2name(option), validator.what());
826 return false;
827 }
828 } else if (option == CompileCommandEnum::TestOptionList) {
829 // all values are ok
830 } else if (option == CompileCommandEnum::TooManyTrapsAtBCI) {
831 // FIXME
832 }
833 #endif
834 else {
835 assert(false, "Ccstrlist type option missing validator");
836 }
837
838 return register_command(matcher, option, errorbuf, buf_size, (ccstr) value);
839 } else {
840 jio_snprintf(errorbuf, buf_size, "Value cannot be read for option '%s' of type '%s'", ccname, type_str);
841 return false;
842 }
843 } else if (type == OptionType::Bool) {
844 char value[256];
845 if (*line == '\0') {
846 // Short version of a CompileCommand sets a boolean Option to true
847 // -XXCompileCommand=<Option>,<method pattern>
848 return register_command(matcher, option, errorbuf, buf_size,true);
849 }
850 if (sscanf(line, "%255[a-zA-Z]%n", value, &bytes_read) == 1) {
851 if (strcasecmp(value, "true") == 0) {
|