< prev index next >
src/share/vm/runtime/arguments.cpp
Print this page
*** 776,787 ****
FREE_C_HEAP_ARRAY(char, dbuf);
os::closedir(dir);
return path;
}
! // Parses a memory size specification string.
! static bool atomull(const char *s, julong* result) {
julong n = 0;
int args_read = 0;
bool is_hex = false;
// Skip leading 0[xX] for hexadecimal
if (*s =='0' && (*(s+1) == 'x' || *(s+1) == 'X')) {
--- 776,787 ----
FREE_C_HEAP_ARRAY(char, dbuf);
os::closedir(dir);
return path;
}
! // Parses a size specification string.
! bool Arguments::atojulong(const char *s, julong* result) {
julong n = 0;
int args_read = 0;
bool is_hex = false;
// Skip leading 0[xX] for hexadecimal
if (*s =='0' && (*(s+1) == 'x' || *(s+1) == 'X')) {
*** 883,901 ****
if (result == NULL) {
return false;
}
! // Check the sign first since atomull() parses only unsigned values.
if (*value == '-') {
if (!result->is_intx() && !result->is_int()) {
return false;
}
value++;
is_neg = true;
}
! if (!atomull(value, &v)) {
return false;
}
if (result->is_int()) {
int_v = (int) v;
if (is_neg) {
--- 883,901 ----
if (result == NULL) {
return false;
}
! // Check the sign first since atojulong() parses only unsigned values.
if (*value == '-') {
if (!result->is_intx() && !result->is_int()) {
return false;
}
value++;
is_neg = true;
}
! if (!Arguments::atojulong(value, &v)) {
return false;
}
if (result->is_int()) {
int_v = (int) v;
if (is_neg) {
*** 2691,2706 ****
bool Arguments::parse_uintx(const char* value,
uintx* uintx_arg,
uintx min_size) {
! // Check the sign first since atomull() parses only unsigned values.
bool value_is_positive = !(*value == '-');
if (value_is_positive) {
julong n;
! bool good_return = atomull(value, &n);
if (good_return) {
bool above_minimum = n >= min_size;
bool value_is_too_large = n > max_uintx;
if (above_minimum && !value_is_too_large) {
--- 2691,2706 ----
bool Arguments::parse_uintx(const char* value,
uintx* uintx_arg,
uintx min_size) {
! // Check the sign first since atojulong() parses only unsigned values.
bool value_is_positive = !(*value == '-');
if (value_is_positive) {
julong n;
! bool good_return = atojulong(value, &n);
if (good_return) {
bool above_minimum = n >= min_size;
bool value_is_too_large = n > max_uintx;
if (above_minimum && !value_is_too_large) {
*** 2713,2723 ****
}
Arguments::ArgsRange Arguments::parse_memory_size(const char* s,
julong* long_arg,
julong min_size) {
! if (!atomull(s, long_arg)) return arg_unreadable;
return check_memory_size(*long_arg, min_size);
}
// Parse JavaVMInitArgs structure
--- 2713,2723 ----
}
Arguments::ArgsRange Arguments::parse_memory_size(const char* s,
julong* long_arg,
julong min_size) {
! if (!atojulong(s, long_arg)) return arg_unreadable;
return check_memory_size(*long_arg, min_size);
}
// Parse JavaVMInitArgs structure
< prev index next >