| @@ -171,11 +171,12 @@ public: | |||||
| while (--numExtraValues >= 0) | while (--numExtraValues >= 0) | ||||
| { | { | ||||
| const uint32 nextByte = (uint32) (uint8) *data++; | |||||
| const uint32 nextByte = (uint32) (uint8) *data; | |||||
| if ((nextByte & 0xc0) != 0x80) | if ((nextByte & 0xc0) != 0x80) | ||||
| break; | break; | ||||
| ++data; | |||||
| n <<= 6; | n <<= 6; | ||||
| n |= (nextByte & 0x3f); | n |= (nextByte & 0x3f); | ||||
| } | } | ||||
| @@ -248,16 +249,8 @@ public: | |||||
| if ((n & 0x80) != 0) | if ((n & 0x80) != 0) | ||||
| { | { | ||||
| uint32 bit = 0x40; | |||||
| while ((n & bit) != 0) | |||||
| { | |||||
| while ((*d & 0xc0) == 0x80) | |||||
| ++d; | ++d; | ||||
| bit >>= 1; | |||||
| if (bit == 0) | |||||
| break; // illegal utf-8 sequence | |||||
| } | |||||
| } | } | ||||
| else if (n == 0) | else if (n == 0) | ||||
| break; | break; | ||||