# HG changeset patch
# User t_mrc-ct@users.sourceforge.jp
# Date 1382167057 -32400
# Branch GECKO2420_2013120609_RELBRANCH
# Node ID 3d4f3c32dba8fb77ba53756671f2996e60af8902
# Parent  b8e8fe2c6aca06ebb661f943689bb0f199af8710
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
   }
