840 if (!validator.is_valid()) {
841 jio_snprintf(errorbuf, buf_size, "Unrecognized tag name in %s: %s", option2name(option), validator.what());
842 return false;
843 }
844 } else if (option == CompileCommandEnum::TraceMergeStores) {
845 TraceMergeStores::TagValidator validator(value, true);
846
847 if (!validator.is_valid()) {
848 jio_snprintf(errorbuf, buf_size, "Unrecognized tag name in %s: %s", option2name(option), validator.what());
849 return false;
850 }
851 } else if (option == CompileCommandEnum::PrintIdealPhase) {
852 PhaseNameValidator validator(value);
853
854 if (!validator.is_valid()) {
855 jio_snprintf(errorbuf, buf_size, "Unrecognized phase name in %s: %s", option2name(option), validator.what());
856 return false;
857 }
858 } else if (option == CompileCommandEnum::TestOptionList) {
859 // all values are ok
860 }
861 #endif
862 else {
863 assert(false, "Ccstrlist type option missing validator");
864 }
865
866 return register_command(matcher, option, errorbuf, buf_size, (ccstr) value);
867 } else {
868 jio_snprintf(errorbuf, buf_size, "Value cannot be read for option '%s' of type '%s'", ccname, type_str);
869 return false;
870 }
871 } else if (type == OptionType::Bool) {
872 char value[256];
873 if (*line == '\0') {
874 // Short version of a CompileCommand sets a boolean Option to true
875 // -XXCompileCommand=<Option>,<method pattern>
876 return register_command(matcher, option, errorbuf, buf_size,true);
877 }
878 if (sscanf(line, "%255[a-zA-Z]%n", value, &bytes_read) == 1) {
879 if (strcasecmp(value, "true") == 0) {
|
840 if (!validator.is_valid()) {
841 jio_snprintf(errorbuf, buf_size, "Unrecognized tag name in %s: %s", option2name(option), validator.what());
842 return false;
843 }
844 } else if (option == CompileCommandEnum::TraceMergeStores) {
845 TraceMergeStores::TagValidator validator(value, true);
846
847 if (!validator.is_valid()) {
848 jio_snprintf(errorbuf, buf_size, "Unrecognized tag name in %s: %s", option2name(option), validator.what());
849 return false;
850 }
851 } else if (option == CompileCommandEnum::PrintIdealPhase) {
852 PhaseNameValidator validator(value);
853
854 if (!validator.is_valid()) {
855 jio_snprintf(errorbuf, buf_size, "Unrecognized phase name in %s: %s", option2name(option), validator.what());
856 return false;
857 }
858 } else if (option == CompileCommandEnum::TestOptionList) {
859 // all values are ok
860 } else if (option == CompileCommandEnum::TooManyTrapsAtBCI) {
861 // FIXME
862 }
863 #endif
864 else {
865 assert(false, "Ccstrlist type option missing validator");
866 }
867
868 return register_command(matcher, option, errorbuf, buf_size, (ccstr) value);
869 } else {
870 jio_snprintf(errorbuf, buf_size, "Value cannot be read for option '%s' of type '%s'", ccname, type_str);
871 return false;
872 }
873 } else if (type == OptionType::Bool) {
874 char value[256];
875 if (*line == '\0') {
876 // Short version of a CompileCommand sets a boolean Option to true
877 // -XXCompileCommand=<Option>,<method pattern>
878 return register_command(matcher, option, errorbuf, buf_size,true);
879 }
880 if (sscanf(line, "%255[a-zA-Z]%n", value, &bytes_read) == 1) {
881 if (strcasecmp(value, "true") == 0) {
|