Fix parsing numbers to support sign

This commit is contained in:
Wojtek Figat
2024-10-04 15:58:27 +02:00
parent 777e65c170
commit 74d2f5d115
2 changed files with 94 additions and 48 deletions

View File

@@ -3082,23 +3082,23 @@ Variant Variant::Parse(const StringView& text, const VariantType& type)
result.AsBool = true;
break;
case VariantType::Int16:
StringUtils::Parse(text.Get(), &result.AsInt16);
StringUtils::Parse(text.Get(), text.Length(), &result.AsInt16);
break;
case VariantType::Uint16:
StringUtils::Parse(text.Get(), &result.AsUint16);
StringUtils::Parse(text.Get(), text.Length(), &result.AsUint16);
break;
case VariantType::Int:
StringUtils::Parse(text.Get(), &result.AsInt);
StringUtils::Parse(text.Get(), text.Length(), &result.AsInt);
break;
case VariantType::Uint:
StringUtils::Parse(text.Get(), &result.AsUint);
StringUtils::Parse(text.Get(), text.Length(), &result.AsUint);
break;
case VariantType::Int64:
StringUtils::Parse(text.Get(), &result.AsInt64);
StringUtils::Parse(text.Get(), text.Length(), &result.AsInt64);
break;
case VariantType::Uint64:
case VariantType::Enum:
if (!StringUtils::Parse(text.Get(), &result.AsUint64))
if (!StringUtils::Parse(text.Get(), text.Length(), &result.AsUint64))
{
}
else if (type.TypeName)