# HG changeset patch
# User t_mrc-ct@users.sourceforge.jp
# Date 1382167057 -32400
# Branch GECKO2460_2014060612_RELBRANCH
# Node ID 41a2fa65a47f4e095b1da9db8737514f6b6872bc
# Parent  ce87d5cfab4f78d05e835cb2a89c2da465bc6613
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
   }
