[Python-checkins] cpython: Issue #14687: Optimize str%args

victor.stinner python-checkins at python.org
Wed May 2 01:19:09 CEST 2012


http://hg.python.org/cpython/rev/4b98ce6ef95e
changeset:   76705:4b98ce6ef95e
user:        Victor Stinner <victor.stinner at gmail.com>
date:        Wed May 02 00:29:36 2012 +0200
summary:
  Issue #14687: Optimize str%args

 * formatfloat() uses unicode_fromascii() instead of PyUnicode_DecodeASCII()
   to not have to check characters, we know that it is really ASCII
 * Use PyUnicode_FromOrdinal() instead of _PyUnicode_FromUCS4() to format
   a character: if avoids a call to ucs4lib_find_max_char() to compute
   the maximum character (whereas we already know it, it is just the character
   itself)

files:
  Objects/unicodeobject.c |  4 ++--
  1 files changed, 2 insertions(+), 2 deletions(-)


diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -13431,7 +13431,7 @@
                               (flags & F_ALT) ? Py_DTSF_ALT : 0, NULL);
     if (p == NULL)
         return NULL;
-    result = PyUnicode_DecodeASCII(p, strlen(p), NULL);
+    result = unicode_fromascii((unsigned char*)p, strlen(p));
     PyMem_Free(p);
     return result;
 }
@@ -13947,7 +13947,7 @@
                 Py_UCS4 ch = formatchar(v);
                 if (ch == (Py_UCS4) -1)
                     goto onError;
-                temp = _PyUnicode_FromUCS4(&ch, 1);
+                temp = PyUnicode_FromOrdinal(ch);
                 break;
             }
 

-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list