diff options
author | Serhiy Storchaka <storchaka@gmail.com> | 2017-11-13 19:23:48 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-13 19:23:48 (GMT) |
commit | 9b6c60cbce4ac45e8ccd7934babff465e9769509 (patch) | |
tree | 973d37d42dfe1ce66303ad0cf658bb20870aa88e /Objects/complexobject.c | |
parent | ce12629c84400c52734859e43b2386deb2b6da12 (diff) | |
download | cpython-9b6c60cbce4ac45e8ccd7934babff465e9769509.zip cpython-9b6c60cbce4ac45e8ccd7934babff465e9769509.tar.gz cpython-9b6c60cbce4ac45e8ccd7934babff465e9769509.tar.bz2 |
bpo-31979: Simplify transforming decimals to ASCII (#4336)
in int(), float() and complex() parsers.
This also speeds up parsing non-ASCII numbers by around 20%.
Diffstat (limited to 'Objects/complexobject.c')
-rw-r--r-- | Objects/complexobject.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/Objects/complexobject.c b/Objects/complexobject.c index 4bcf2ce..2c886c7 100644 --- a/Objects/complexobject.c +++ b/Objects/complexobject.c @@ -914,10 +914,10 @@ complex_subtype_from_string(PyTypeObject *type, PyObject *v) if (s_buffer == NULL) { return NULL; } + assert(PyUnicode_IS_ASCII(s_buffer)); + /* Simply get a pointer to existing ASCII characters. */ s = PyUnicode_AsUTF8AndSize(s_buffer, &len); - if (s == NULL) { - goto exit; - } + assert(s != NULL); } else { PyErr_Format(PyExc_TypeError, @@ -928,7 +928,6 @@ complex_subtype_from_string(PyTypeObject *type, PyObject *v) result = _Py_string_to_number_with_underscores(s, len, "complex", v, type, complex_from_string_inner); - exit: Py_DECREF(s_buffer); return result; } |