Fix argument mismatch in integer parsing
The minneg argument is supposed to be the absolute value of the minimum negative representable number. In case of two-complement arithmetic, it's the same as the value itself but it's better to be explicit and negate the argument.
This commit is contained in:
parent
4230292830
commit
122157eb0e
@ -4401,7 +4401,7 @@ PUGI__NS_BEGIN
|
|||||||
|
|
||||||
PUGI__FN int get_value_int(const char_t* value)
|
PUGI__FN int get_value_int(const char_t* value)
|
||||||
{
|
{
|
||||||
return string_to_integer<unsigned int>(value, static_cast<unsigned int>(INT_MIN), INT_MAX);
|
return string_to_integer<unsigned int>(value, 0 - static_cast<unsigned int>(INT_MIN), INT_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
PUGI__FN unsigned int get_value_uint(const char_t* value)
|
PUGI__FN unsigned int get_value_uint(const char_t* value)
|
||||||
@ -4439,7 +4439,7 @@ PUGI__NS_BEGIN
|
|||||||
#ifdef PUGIXML_HAS_LONG_LONG
|
#ifdef PUGIXML_HAS_LONG_LONG
|
||||||
PUGI__FN long long get_value_llong(const char_t* value)
|
PUGI__FN long long get_value_llong(const char_t* value)
|
||||||
{
|
{
|
||||||
return string_to_integer<unsigned long long>(value, static_cast<unsigned long long>(LLONG_MIN), LLONG_MAX);
|
return string_to_integer<unsigned long long>(value, 0 - static_cast<unsigned long long>(LLONG_MIN), LLONG_MAX);
|
||||||
}
|
}
|
||||||
|
|
||||||
PUGI__FN unsigned long long get_value_ullong(const char_t* value)
|
PUGI__FN unsigned long long get_value_ullong(const char_t* value)
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user