1.1 --- a/src/share/vm/runtime/arguments.cpp Wed Jan 27 22:38:37 2010 -0800 1.2 +++ b/src/share/vm/runtime/arguments.cpp Fri Jan 29 14:51:38 2010 -0800 1.3 @@ -1487,6 +1487,20 @@ 1.4 //=========================================================================================================== 1.5 // Parsing of main arguments 1.6 1.7 +bool Arguments::verify_interval(uintx val, uintx min, 1.8 + uintx max, const char* name) { 1.9 + // Returns true iff value is in the inclusive interval [min..max] 1.10 + // false, otherwise. 1.11 + if (val >= min && val <= max) { 1.12 + return true; 1.13 + } 1.14 + jio_fprintf(defaultStream::error_stream(), 1.15 + "%s of " UINTX_FORMAT " is invalid; must be between " UINTX_FORMAT 1.16 + " and " UINTX_FORMAT "\n", 1.17 + name, val, min, max); 1.18 + return false; 1.19 +} 1.20 + 1.21 bool Arguments::verify_percentage(uintx value, const char* name) { 1.22 if (value <= 100) { 1.23 return true; 1.24 @@ -1723,6 +1737,16 @@ 1.25 status = false; 1.26 } 1.27 1.28 + status = status && verify_interval(RefDiscoveryPolicy, 1.29 + ReferenceProcessor::DiscoveryPolicyMin, 1.30 + ReferenceProcessor::DiscoveryPolicyMax, 1.31 + "RefDiscoveryPolicy"); 1.32 + 1.33 + // Limit the lower bound of this flag to 1 as it is used in a division 1.34 + // expression. 1.35 + status = status && verify_interval(TLABWasteTargetPercent, 1.36 + 1, 100, "TLABWasteTargetPercent"); 1.37 + 1.38 return status; 1.39 } 1.40