# HG changeset patch
# User t_mrc-ct@users.sourceforge.jp
# Date 1382167057 -32400
# Branch GECKO2470_2014071714_RELBRANCH
# Node ID fd4133792deaebe3dfee5159e8bf12ad45722fc3
# Parent  4796fa0203e058304cd41ef38ea361439b0c2160
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
   }
