[Python-checkins] closes bpo-34599: Improve performance of _Py_bytes_capitalize(). (GH-9083)

Benjamin Peterson webhook-mailer at python.org
Fri Sep 7 00:54:53 EDT 2018


https://github.com/python/cpython/commit/593bb30e82eded7f2ec02f7d1aa49742e6962113
commit: 593bb30e82eded7f2ec02f7d1aa49742e6962113
branch: master
author: Sergey Fedoseev <fedoseev.sergey at gmail.com>
committer: Benjamin Peterson <benjamin at python.org>
date: 2018-09-06T21:54:49-07:00
summary:

closes bpo-34599: Improve performance of _Py_bytes_capitalize(). (GH-9083)

files:
M Objects/bytes_methods.c

diff --git a/Objects/bytes_methods.c b/Objects/bytes_methods.c
index 05679e31c9d6..37c5f7dbc804 100644
--- a/Objects/bytes_methods.c
+++ b/Objects/bytes_methods.c
@@ -361,23 +361,9 @@ and the rest lower-cased.");
 void
 _Py_bytes_capitalize(char *result, const char *s, Py_ssize_t len)
 {
-    Py_ssize_t i;
-
-    if (0 < len) {
-        int c = Py_CHARMASK(*s++);
-        if (Py_ISLOWER(c))
-            *result = Py_TOUPPER(c);
-        else
-            *result = c;
-        result++;
-    }
-    for (i = 1; i < len; i++) {
-        int c = Py_CHARMASK(*s++);
-        if (Py_ISUPPER(c))
-            *result = Py_TOLOWER(c);
-        else
-            *result = c;
-        result++;
+    if (len > 0) {
+        *result = Py_TOUPPER(*s);
+        _Py_bytes_lower(result + 1, s + 1, len - 1);
     }
 }
 



More information about the Python-checkins mailing list