mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Use size_t in dev::utf8::validate()
This commit is contained in:
parent
c157163441
commit
f1df3dee53
@ -31,18 +31,18 @@ namespace utf8
|
||||
{
|
||||
|
||||
|
||||
bool validate(std::string const& _input, int& _invalidPosition)
|
||||
bool validate(std::string const& _input, size_t& _invalidPosition)
|
||||
{
|
||||
const int length = _input.length();
|
||||
const size_t length = _input.length();
|
||||
bool valid = true;
|
||||
int i = 0;
|
||||
size_t i = 0;
|
||||
|
||||
for (; i < length; i++)
|
||||
{
|
||||
if ((unsigned char)_input[i] < 0x80)
|
||||
continue;
|
||||
|
||||
int count = 0;
|
||||
size_t count = 0;
|
||||
switch(_input[i] & 0xe0) {
|
||||
case 0xc0: count = 1; break;
|
||||
case 0xe0: count = 2; break;
|
||||
@ -62,7 +62,7 @@ bool validate(std::string const& _input, int& _invalidPosition)
|
||||
break;
|
||||
}
|
||||
|
||||
for (int j = 0; j < count; j++)
|
||||
for (size_t j = 0; j < count; j++)
|
||||
{
|
||||
i++;
|
||||
if ((_input[i] & 0xc0) != 0x80)
|
||||
|
@ -33,7 +33,7 @@ namespace utf8
|
||||
|
||||
/// Validate an input for UTF8 encoding
|
||||
/// @returns true if it is invalid and the first invalid position in invalidPosition
|
||||
bool validate(std::string const& _input, int& _invalidPosition);
|
||||
bool validate(std::string const& _input, size_t& _invalidPosition);
|
||||
|
||||
}
|
||||
|
||||
|
@ -855,7 +855,7 @@ bool StringLiteralType::operator==(const Type& _other) const
|
||||
|
||||
std::string StringLiteralType::toString(bool) const
|
||||
{
|
||||
int invalidSequence;
|
||||
size_t invalidSequence;
|
||||
|
||||
if (!dev::utf8::validate(m_value, invalidSequence))
|
||||
return "literal_string (contains invalid UTF-8 sequence at position " + dev::toString(invalidSequence) + ")";
|
||||
|
Loading…
Reference in New Issue
Block a user