You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@stdcxx.apache.org by se...@apache.org on 2008/07/12 00:20:17 UTC

svn commit: r676093 - /stdcxx/branches/4.2.x/src/wcodecvt.cpp

Author: sebor
Date: Fri Jul 11 15:20:16 2008
New Revision: 676093

URL: http://svn.apache.org/viewvc?rev=676093&view=rev
Log:
2008-07-11  Martin Sebor  <se...@roguewave.com>

	Merged rev 649665 from 4.3.x.

	* src/wcodecvt.cpp (__rw_libstd_do_out): Replaced the local equivalent
	of _RWSTD_UWCHAR_INT_T newly introduced in r649646 with the said type.

Modified:
    stdcxx/branches/4.2.x/src/wcodecvt.cpp

Modified: stdcxx/branches/4.2.x/src/wcodecvt.cpp
URL: http://svn.apache.org/viewvc/stdcxx/branches/4.2.x/src/wcodecvt.cpp?rev=676093&r1=676092&r2=676093&view=diff
==============================================================================
--- stdcxx/branches/4.2.x/src/wcodecvt.cpp (original)
+++ stdcxx/branches/4.2.x/src/wcodecvt.cpp Fri Jul 11 15:20:16 2008
@@ -762,20 +762,12 @@
             // in strict mode check wide character for validity
             // (i.e., diagnose surrogate pairs as illegal)
 
-#  if _RWSTD_WCHAR_SIZE == _RWSTD_CHAR_SIZE
-            typedef unsigned char WIntT;
-#  elif _RWSTD_WCHAR_SIZE == _RWSTD_SHRT_SIZE
-            typedef unsigned short WIntT;
-#  elif _RWSTD_WCHAR_SIZE ==_RWSTD_INT_SIZE
-            typedef unsigned int WIntT;
-#  elif _RWSTD_WCHAR_SIZE ==_RWSTD_LLONG_SIZE
-            typedef unsigned _RWSTD_LONG_LONG WIntT;
-#  else
-            typedef unsigned long WIntT;
-#  endif
+            typedef _RWSTD_UWCHAR_INT_T WIntT;
 
-            // convert wchar_t to an unsigned integer safe for comaprison
-            const unsigned long wi = _RWSTD_STATIC_CAST (WIntT, *from_next);
+            // convert wchar_t to the unsigned form of its underlying
+            // integer type that's safe in arithmetic comaprisons and
+            // doesn't generate signed/unsigned compiler warnings
+            const WIntT wi = _RWSTD_STATIC_CAST (WIntT, *from_next);
 
             if (   WIntT (0xd800U) <= wi && wi <= WIntT (0xdfffU)
                 || WIntT (0xfffeU) <= wi && wi <= WIntT (0xffffU)) {