From 2ec70102066fe5534f1a62e8f496d2005e1697db Mon Sep 17 00:00:00 2001
From: Jordon Xu <46997731+qigangxu@users.noreply.github.com>
Date: Wed, 11 Sep 2019 00:04:08 +0800
Subject: [PATCH] bpo-37752: Delete redundant Py_CHARMASK in normalizestring()
 (GH-15095)

---
 Modules/_struct.c     | 4 ++--
 Modules/_tkinter.c    | 4 ++--
 Modules/unicodedata.c | 4 ++--
 Objects/longobject.c  | 4 ++--
 Python/dynload_aix.c  | 2 +-
 Python/getargs.c      | 6 +++---
 Python/mystrtoul.c    | 6 +++---
 7 files changed, 15 insertions(+), 15 deletions(-)

diff --git a/Modules/_struct.c b/Modules/_struct.c
index 5fdfdf9da6..c387ae2ffc 100644
--- a/Modules/_struct.c
+++ b/Modules/_struct.c
@@ -1298,7 +1298,7 @@ prepare_s(PyStructObject *self)
     len = 0;
     ncodes = 0;
     while ((c = *s++) != '\0') {
-        if (Py_ISSPACE(Py_CHARMASK(c)))
+        if (Py_ISSPACE(c))
             continue;
         if ('0' <= c && c <= '9') {
             num = c - '0';
@@ -1363,7 +1363,7 @@ prepare_s(PyStructObject *self)
     s = fmt;
     size = 0;
     while ((c = *s++) != '\0') {
-        if (Py_ISSPACE(Py_CHARMASK(c)))
+        if (Py_ISSPACE(c))
             continue;
         if ('0' <= c && c <= '9') {
             num = c - '0';
diff --git a/Modules/_tkinter.c b/Modules/_tkinter.c
index a832099c09..036f9b68bb 100644
--- a/Modules/_tkinter.c
+++ b/Modules/_tkinter.c
@@ -671,8 +671,8 @@ Tkapp_New(const char *screenName, const char *className,
     }
 
     strcpy(argv0, className);
-    if (Py_ISUPPER(Py_CHARMASK(argv0[0])))
-        argv0[0] = Py_TOLOWER(Py_CHARMASK(argv0[0]));
+    if (Py_ISUPPER(argv0[0]))
+        argv0[0] = Py_TOLOWER(argv0[0]);
     Tcl_SetVar(v->interp, "argv0", argv0, TCL_GLOBAL_ONLY);
     PyMem_Free(argv0);
 
diff --git a/Modules/unicodedata.c b/Modules/unicodedata.c
index bb09b7d21f..e99d914b79 100644
--- a/Modules/unicodedata.c
+++ b/Modules/unicodedata.c
@@ -987,7 +987,7 @@ _gethash(const char *s, int len, int scale)
     unsigned long h = 0;
     unsigned long ix;
     for (i = 0; i < len; i++) {
-        h = (h * scale) + (unsigned char) Py_TOUPPER(Py_CHARMASK(s[i]));
+        h = (h * scale) + (unsigned char) Py_TOUPPER(s[i]);
         ix = h & 0xff000000;
         if (ix)
             h = (h ^ ((ix>>24) & 0xff)) & 0x00ffffff;
@@ -1157,7 +1157,7 @@ _cmpname(PyObject *self, int code, const char* name, int namelen)
     if (!_getucname(self, code, buffer, NAME_MAXLEN, 1))
         return 0;
     for (i = 0; i < namelen; i++) {
-        if (Py_TOUPPER(Py_CHARMASK(name[i])) != buffer[i])
+        if (Py_TOUPPER(name[i]) != buffer[i])
             return 0;
     }
     return buffer[namelen] == '\0';
diff --git a/Objects/longobject.c b/Objects/longobject.c
index 4cf2b0726e..ed25e0bee3 100644
--- a/Objects/longobject.c
+++ b/Objects/longobject.c
@@ -2300,7 +2300,7 @@ PyLong_FromString(const char *str, char **pend, int base)
                         "int() arg 2 must be >= 2 and <= 36");
         return NULL;
     }
-    while (*str != '\0' && Py_ISSPACE(Py_CHARMASK(*str))) {
+    while (*str != '\0' && Py_ISSPACE(*str)) {
         str++;
     }
     if (*str == '+') {
@@ -2609,7 +2609,7 @@ digit beyond the first.
     if (sign < 0) {
         Py_SIZE(z) = -(Py_SIZE(z));
     }
-    while (*str && Py_ISSPACE(Py_CHARMASK(*str))) {
+    while (*str && Py_ISSPACE(*str)) {
         str++;
     }
     if (*str != '\0') {
diff --git a/Python/dynload_aix.c b/Python/dynload_aix.c
index b3ff8e288c..684f10a8b9 100644
--- a/Python/dynload_aix.c
+++ b/Python/dynload_aix.c
@@ -140,7 +140,7 @@ aix_loaderror(const char *pathname)
             if (nerr == load_errtab[j].errNo && load_errtab[j].errstr)
             ERRBUF_APPEND(load_errtab[j].errstr);
         }
-        while (Py_ISDIGIT(Py_CHARMASK(*message[i]))) message[i]++ ;
+        while (Py_ISDIGIT(*message[i])) message[i]++ ;
         ERRBUF_APPEND(message[i]);
         ERRBUF_APPEND("\n");
     }
diff --git a/Python/getargs.c b/Python/getargs.c
index 02a0366ece..7723ae3537 100644
--- a/Python/getargs.c
+++ b/Python/getargs.c
@@ -312,7 +312,7 @@ vgetargs1_impl(PyObject *compat_args, PyObject *const *stack, Py_ssize_t nargs,
             break;
         default:
             if (level == 0) {
-                if (Py_ISALPHA(Py_CHARMASK(c)))
+                if (Py_ISALPHA(c))
                     if (c != 'e') /* skip encoded */
                         max++;
             }
@@ -397,7 +397,7 @@ vgetargs1_impl(PyObject *compat_args, PyObject *const *stack, Py_ssize_t nargs,
         }
     }
 
-    if (*format != '\0' && !Py_ISALPHA(Py_CHARMASK(*format)) &&
+    if (*format != '\0' && !Py_ISALPHA(*format) &&
         *format != '(' &&
         *format != '|' && *format != ':' && *format != ';') {
         PyErr_Format(PyExc_SystemError,
@@ -521,7 +521,7 @@ converttuple(PyObject *arg, const char **p_format, va_list *p_va, int flags,
         }
         else if (c == ':' || c == ';' || c == '\0')
             break;
-        else if (level == 0 && Py_ISALPHA(Py_CHARMASK(c)))
+        else if (level == 0 && Py_ISALPHA(c))
             n++;
     }
 
diff --git a/Python/mystrtoul.c b/Python/mystrtoul.c
index 7ab5814272..19fa57aa14 100644
--- a/Python/mystrtoul.c
+++ b/Python/mystrtoul.c
@@ -99,7 +99,7 @@ PyOS_strtoul(const char *str, char **ptr, int base)
     int ovlimit;       /* required digits to overflow */
 
     /* skip leading white space */
-    while (*str && Py_ISSPACE(Py_CHARMASK(*str)))
+    while (*str && Py_ISSPACE(*str))
         ++str;
 
     /* check for leading 0b, 0o or 0x for auto-base or base 16 */
@@ -138,7 +138,7 @@ PyOS_strtoul(const char *str, char **ptr, int base)
                 /* skip all zeroes... */
                 while (*str == '0')
                     ++str;
-                while (Py_ISSPACE(Py_CHARMASK(*str)))
+                while (Py_ISSPACE(*str))
                     ++str;
                 if (ptr)
                     *ptr = (char *)str;
@@ -266,7 +266,7 @@ PyOS_strtol(const char *str, char **ptr, int base)
     unsigned long uresult;
     char sign;
 
-    while (*str && Py_ISSPACE(Py_CHARMASK(*str)))
+    while (*str && Py_ISSPACE(*str))
         str++;
 
     sign = *str;
-- 
2.49.0