src/share/vm/runtime/commandLineFlagRangeList.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8112746 Cdiff src/share/vm/runtime/commandLineFlagRangeList.cpp

src/share/vm/runtime/commandLineFlagRangeList.cpp

Print this page

        

*** 30,39 **** --- 30,48 ---- #include "runtime/commandLineFlagRangeList.hpp" #include "runtime/os.hpp" #include "utilities/defaultStream.hpp" #include "utilities/macros.hpp" + void CommandLineError::print(bool verbose, const char* msg, ...) { + if (verbose) { + va_list listPointer; + va_start(listPointer, msg); + jio_vfprintf(defaultStream::error_stream(), msg, listPointer); + va_end(listPointer); + } + } + class CommandLineFlagRange_int : public CommandLineFlagRange { int _min; int _max; public:
*** 42,56 **** _min=min, _max=max; } Flag::Error check_int(int value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! if (verbose == true) { ! jio_fprintf(defaultStream::error_stream(), ! "int %s=%d is outside the allowed range [ %d ... %d ]\n", name(), value, _min, _max); - } return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } } --- 51,64 ---- _min=min, _max=max; } Flag::Error check_int(int value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! CommandLineError::print(verbose, ! "int %s=%d is outside the allowed range " ! "[ %d ... %d ]\n", name(), value, _min, _max); return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } }
*** 70,84 **** _min=min, _max=max; } Flag::Error check_intx(intx value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! if (verbose == true) { ! jio_fprintf(defaultStream::error_stream(), ! "intx %s=" INTX_FORMAT " is outside the allowed range [ " INTX_FORMAT " ... " INTX_FORMAT " ]\n", name(), value, _min, _max); - } return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } } --- 78,91 ---- _min=min, _max=max; } Flag::Error check_intx(intx value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! CommandLineError::print(verbose, ! "intx %s=" INTX_FORMAT " is outside the allowed range " ! "[ " INTX_FORMAT " ... " INTX_FORMAT " ]\n", name(), value, _min, _max); return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } }
*** 98,112 **** _min=min, _max=max; } Flag::Error check_uint(uint value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! if (verbose == true) { ! jio_fprintf(defaultStream::error_stream(), ! "uintx %s=%u is outside the allowed range [ %u ... %u ]\n", name(), value, _min, _max); - } return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } } --- 105,118 ---- _min=min, _max=max; } Flag::Error check_uint(uint value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! CommandLineError::print(verbose, ! "uint %s=%u is outside the allowed range " ! "[ %u ... %u ]\n", name(), value, _min, _max); return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } }
*** 126,140 **** _min=min, _max=max; } Flag::Error check_uintx(uintx value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! if (verbose == true) { ! jio_fprintf(defaultStream::error_stream(), ! "uintx %s=" UINTX_FORMAT " is outside the allowed range [ " UINTX_FORMAT " ... " UINTX_FORMAT " ]\n", name(), value, _min, _max); - } return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } } --- 132,145 ---- _min=min, _max=max; } Flag::Error check_uintx(uintx value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! CommandLineError::print(verbose, ! "uintx %s=" UINTX_FORMAT " is outside the allowed range " ! "[ " UINTX_FORMAT " ... " UINTX_FORMAT " ]\n", name(), value, _min, _max); return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } }
*** 154,168 **** _min=min, _max=max; } Flag::Error check_uint64_t(uint64_t value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! if (verbose == true) { ! jio_fprintf(defaultStream::error_stream(), ! "uint64_t %s=" UINT64_FORMAT " is outside the allowed range [ " UINT64_FORMAT " ... " UINT64_FORMAT " ]\n", name(), value, _min, _max); - } return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } } --- 159,172 ---- _min=min, _max=max; } Flag::Error check_uint64_t(uint64_t value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! CommandLineError::print(verbose, ! "uint64_t %s=" UINT64_FORMAT " is outside the allowed range " ! "[ " UINT64_FORMAT " ... " UINT64_FORMAT " ]\n", name(), value, _min, _max); return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } }
*** 182,196 **** _min=min, _max=max; } Flag::Error check_size_t(size_t value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! if (verbose == true) { ! jio_fprintf(defaultStream::error_stream(), ! "size_t %s=" SIZE_FORMAT " is outside the allowed range [ " SIZE_FORMAT " ... " SIZE_FORMAT " ]\n", name(), value, _min, _max); - } return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } } --- 186,199 ---- _min=min, _max=max; } Flag::Error check_size_t(size_t value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! CommandLineError::print(verbose, ! "size_t %s=" SIZE_FORMAT " is outside the allowed range " ! "[ " SIZE_FORMAT " ... " SIZE_FORMAT " ]\n", name(), value, _min, _max); return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } }
*** 210,224 **** _min=min, _max=max; } Flag::Error check_double(double value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! if (verbose == true) { ! jio_fprintf(defaultStream::error_stream(), ! "double %s=%f is outside the allowed range [ %f ... %f ]\n", name(), value, _min, _max); - } return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } } --- 213,226 ---- _min=min, _max=max; } Flag::Error check_double(double value, bool verbose = true) { if ((value < _min) || (value > _max)) { ! CommandLineError::print(verbose, ! "double %s=%f is outside the allowed range " ! "[ %f ... %f ]\n", name(), value, _min, _max); return Flag::OUT_OF_BOUNDS; } else { return Flag::SUCCESS; } }
*** 365,411 **** st->print("[ ... ]"); } } bool CommandLineFlagRangeList::check_ranges() { - //#define PRINT_RANGES_SIZES - #ifdef PRINT_RANGES_SIZES - { - size_t size_ranges = sizeof(CommandLineFlagRangeList); - for (int i=0; i<length(); i++) { - size_ranges += sizeof(CommandLineFlagRange); - CommandLineFlagRange* range = at(i); - const char* name = range->name(); - Flag* flag = Flag::find_flag(name, strlen(name), true, true); - if (flag->is_intx()) { - size_ranges += 2*sizeof(intx); - size_ranges += sizeof(CommandLineFlagRange*); - } else if (flag->is_uintx()) { - size_ranges += 2*sizeof(uintx); - size_ranges += sizeof(CommandLineFlagRange*); - } else if (flag->is_uint64_t()) { - size_ranges += 2*sizeof(uint64_t); - size_ranges += sizeof(CommandLineFlagRange*); - } else if (flag->is_size_t()) { - size_ranges += 2*sizeof(size_t); - size_ranges += sizeof(CommandLineFlagRange*); - } else if (flag->is_double()) { - size_ranges += 2*sizeof(double); - size_ranges += sizeof(CommandLineFlagRange*); - } - } - fprintf(stderr, "Size of %d ranges: " SIZE_FORMAT " bytes\n", - length(), size_ranges); - } - #endif // PRINT_RANGES_SIZES - // Check ranges. bool status = true; for (int i=0; i<length(); i++) { CommandLineFlagRange* range = at(i); const char* name = range->name(); Flag* flag = Flag::find_flag(name, strlen(name), true, true); if (flag != NULL) { if (flag->is_intx()) { intx value = flag->get_intx(); if (range->check_intx(value, true) != Flag::SUCCESS) status = false; } else if (flag->is_uintx()) { --- 367,385 ---- st->print("[ ... ]"); } } bool CommandLineFlagRangeList::check_ranges() { // Check ranges. bool status = true; for (int i=0; i<length(); i++) { CommandLineFlagRange* range = at(i); const char* name = range->name(); Flag* flag = Flag::find_flag(name, strlen(name), true, true); + // We must check for NULL here as lp64_product flags on 32 bit architecture + // can generate range check (despite that they are declared as constants), + // but they will not be returned by Flag::find_flag() if (flag != NULL) { if (flag->is_intx()) { intx value = flag->get_intx(); if (range->check_intx(value, true) != Flag::SUCCESS) status = false; } else if (flag->is_uintx()) {
src/share/vm/runtime/commandLineFlagRangeList.cpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File