diff options
Diffstat (limited to 'libxsd/xsd/cxx/xml/char-utf8.txx')
-rw-r--r-- | libxsd/xsd/cxx/xml/char-utf8.txx | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/libxsd/xsd/cxx/xml/char-utf8.txx b/libxsd/xsd/cxx/xml/char-utf8.txx index ba65397..76bba86 100644 --- a/libxsd/xsd/cxx/xml/char-utf8.txx +++ b/libxsd/xsd/cxx/xml/char-utf8.txx @@ -115,20 +115,24 @@ namespace xsd rs[i + 3] = C ((u | 0x80UL) & 0xBFUL); u >>= 6; } + // Fall through. case 3: { rs[i + 2] = C ((u | 0x80UL) & 0xBFUL); u >>= 6; } + // Fall through. case 2: { rs[i + 1] = C ((u | 0x80UL) & 0xBFUL); u >>= 6; } + // Fall through. case 1: { rs[i] = C (u | first_byte_mask_[count]); } + // Fall through. } i += count; @@ -216,7 +220,7 @@ namespace xsd // u = (c & 0x1F) << 6; - c = *++p; + c = static_cast<unsigned char> (*++p); if ((c >> 6) != 2) { valid = false; @@ -231,7 +235,7 @@ namespace xsd // u = (c & 0x0F) << 6; - c = *++p; + c = static_cast<unsigned char> (*++p); if ((c >> 6) != 2) { valid = false; @@ -239,7 +243,7 @@ namespace xsd } u = (u | (c & 0x3F)) << 6; - c = *++p; + c = static_cast<unsigned char> (*++p); if ((c >> 6) != 2) { valid = false; @@ -254,7 +258,7 @@ namespace xsd // u = (c & 0x07) << 6; - c = *++p; + c = static_cast<unsigned char> (*++p); if ((c >> 6) != 2) { valid = false; @@ -262,7 +266,7 @@ namespace xsd } u = (u | (c & 0x3F)) << 6; - c = *++p; + c = static_cast<unsigned char> (*++p); if ((c >> 6) != 2) { valid = false; @@ -270,7 +274,7 @@ namespace xsd } u = (u | (c & 0x3F)) << 6; - c = *++p; + c = static_cast<unsigned char> (*++p); if ((c >> 6) != 2) { valid = false; |