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;
|
bool valid = true;
|
||||||
int i = 0;
|
size_t i = 0;
|
||||||
|
|
||||||
for (; i < length; i++)
|
for (; i < length; i++)
|
||||||
{
|
{
|
||||||
if ((unsigned char)_input[i] < 0x80)
|
if ((unsigned char)_input[i] < 0x80)
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
int count = 0;
|
size_t count = 0;
|
||||||
switch(_input[i] & 0xe0) {
|
switch(_input[i] & 0xe0) {
|
||||||
case 0xc0: count = 1; break;
|
case 0xc0: count = 1; break;
|
||||||
case 0xe0: count = 2; break;
|
case 0xe0: count = 2; break;
|
||||||
@ -62,7 +62,7 @@ bool validate(std::string const& _input, int& _invalidPosition)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int j = 0; j < count; j++)
|
for (size_t j = 0; j < count; j++)
|
||||||
{
|
{
|
||||||
i++;
|
i++;
|
||||||
if ((_input[i] & 0xc0) != 0x80)
|
if ((_input[i] & 0xc0) != 0x80)
|
||||||
|
@ -33,7 +33,7 @@ namespace utf8
|
|||||||
|
|
||||||
/// Validate an input for UTF8 encoding
|
/// Validate an input for UTF8 encoding
|
||||||
/// @returns true if it is invalid and the first invalid position in invalidPosition
|
/// @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
|
std::string StringLiteralType::toString(bool) const
|
||||||
{
|
{
|
||||||
int invalidSequence;
|
size_t invalidSequence;
|
||||||
|
|
||||||
if (!dev::utf8::validate(m_value, invalidSequence))
|
if (!dev::utf8::validate(m_value, invalidSequence))
|
||||||
return "literal_string (contains invalid UTF-8 sequence at position " + dev::toString(invalidSequence) + ")";
|
return "literal_string (contains invalid UTF-8 sequence at position " + dev::toString(invalidSequence) + ")";
|
||||||
|
Loading…
Reference in New Issue
Block a user