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