# HG changeset patch
# User t_mrc-ct@users.sourceforge.jp
# Date 1382167057 -32400
# Branch GECKO2410_2013102320_RELBRANCH
# Node ID 32de72eda573a6bf92b330d0c0ae04e8af3b9a6f
# Parent  61c1deab4a2c1391c1c31350330bbec86a580336
M906698

diff --git a/intl/uconv/ucvlatin/nsUTF16ToUnicode.cpp b/intl/uconv/ucvlatin/nsUTF16ToUnicode.cpp
--- a/intl/uconv/ucvlatin/nsUTF16ToUnicode.cpp
+++ b/intl/uconv/ucvlatin/nsUTF16ToUnicode.cpp
@@ -73,17 +73,17 @@
   if (mState == STATE_HALF_CODE_POINT) {
     if (dest == destEnd)
       goto error;
 
     // the 1st byte of a 16-bit code unit was stored in |mOddByte| in the
     // previous run while the 2nd byte has to come from |*src|.
     mState = STATE_NORMAL;
 #ifdef IS_BIG_ENDIAN
-    u = (mOddByte << 8) | *src++; // safe, we know we have at least one byte.
+    u = (mOddByte << 8) | uint8_t(*src++); // safe, we know we have at least one byte.
 #else
     u = (*src++ << 8) | mOddByte; // safe, we know we have at least one byte.
 #endif
     srcEvenEnd = src + ((srcEnd - src) & ~1); // handle even number of bytes in main loop
     goto have_codepoint;
   } else {
     srcEvenEnd = src + ((srcEnd - src) & ~1); // handle even number of bytes in main loop
   }
