[Python-checkins] r82966 - python/branches/py3k/Include/Python.h

stefan.krah python-checkins at python.org
Mon Jul 19 14:36:57 CEST 2010


Author: stefan.krah
Date: Mon Jul 19 14:36:57 2010
New Revision: 82966

Log:
Issue #9036: Throughout the code base, Py_CHARMASK is used on 8-bit wide
signed/unsigned chars or on integers directly derived from those. In all
cases, it could be replaced by a simple cast to (unsigned char). Reasons
for the change:

  a) Make the comment more explicit.

  b) If char is unsigned, the cast is optimized away.

  c) If char is unsigned, gcc emits spurious "array subscript
     has type 'char'" warnings.



Modified:
   python/branches/py3k/Include/Python.h

Modified: python/branches/py3k/Include/Python.h
==============================================================================
--- python/branches/py3k/Include/Python.h	(original)
+++ python/branches/py3k/Include/Python.h	Mon Jul 19 14:36:57 2010
@@ -134,13 +134,8 @@
 }
 #endif
 
-/* Convert a possibly signed character to a nonnegative int */
-/* XXX This assumes characters are 8 bits wide */
-#ifdef __CHAR_UNSIGNED__
-#define Py_CHARMASK(c)		(c)
-#else
+/* Argument must be a char or an int in [-128, 127] or [0, 255]. */
 #define Py_CHARMASK(c)		((unsigned char)((c) & 0xff))
-#endif
 
 #include "pyfpe.h"
 


More information about the Python-checkins mailing list