Ticket #43895: patch-src-xercesc-util-XMLUTF8Transcoder.cpp.diff

File patch-src-xercesc-util-XMLUTF8Transcoder.cpp.diff, 2.6 KB (added by gallafent, 10 years ago)

Remove C++11 narrowing error

  • src/xercesc/util/XMLUTF8Transcoder.cpp

    old new  
    178178        if((gUTFByteIndicatorTest[trailingBytes] & *srcPtr) != gUTFByteIndicator[trailingBytes]) {
    179179            char pos[2] = {(char)0x31, 0};
    180180            char len[2] = {(char)(trailingBytes+0x31), 0};
    181             char byte[2] = {*srcPtr,0};
     181            char byte[2] = {static_cast<char>(*srcPtr),0};
    182182            ThrowXMLwithMemMgr3(UTFDataFormatException, XMLExcepts::UTF8_FormatError, pos, byte, len, getMemoryManager());
    183183        }
    184184
     
    246246                //
    247247                if (( *srcPtr == 0xE0) && ( *(srcPtr+1) < 0xA0))
    248248                {
    249                     char byte0[2] = {*srcPtr    ,0};
    250                     char byte1[2] = {*(srcPtr+1),0};
     249                    char byte0[2] = {static_cast<char>(*srcPtr),    0};
     250                    char byte1[2] = {static_cast<char>(*(srcPtr+1)),0};
    251251
    252252                    ThrowXMLwithMemMgr2(UTFDataFormatException
    253253                                      , XMLExcepts::UTF8_Invalid_3BytesSeq
     
    284284
    285285                if ((*srcPtr == 0xED) && (*(srcPtr+1) >= 0xA0))
    286286                {
    287                     char byte0[2] = {*srcPtr,    0};
    288                     char byte1[2] = {*(srcPtr+1),0};
     287                    char byte0[2] = {static_cast<char>(*srcPtr),    0};
     288                    char byte1[2] = {static_cast<char>(*(srcPtr+1)),0};
    289289
    290290                     ThrowXMLwithMemMgr2(UTFDataFormatException
    291291                              , XMLExcepts::UTF8_Irregular_3BytesSeq
     
    310310                if (((*srcPtr == 0xF0) && (*(srcPtr+1) < 0x90)) ||
    311311                    ((*srcPtr == 0xF4) && (*(srcPtr+1) > 0x8F))  )
    312312                {
    313                     char byte0[2] = {*srcPtr    ,0};
    314                     char byte1[2] = {*(srcPtr+1),0};
     313                    char byte0[2] = {static_cast<char>(*srcPtr),    0};
     314                    char byte1[2] = {static_cast<char>(*(srcPtr+1)),0};
    315315
    316316                    ThrowXMLwithMemMgr2(UTFDataFormatException
    317317                                      , XMLExcepts::UTF8_Invalid_4BytesSeq
     
    344344                 * surrogates, nor U+FFFE and U+FFFF (but it does allow other noncharacters).
    345345                 ***/
    346346                char len[2]  = {(char)(trailingBytes+0x31), 0};
    347                 char byte[2] = {*srcPtr,0};
     347                char byte[2] = {static_cast<char>(*srcPtr),0};
    348348
    349349                ThrowXMLwithMemMgr2(UTFDataFormatException
    350350                                  , XMLExcepts::UTF8_Exceeds_BytesLimit