From ed2b7397a0558414e1ec61c48bc889bb05e261ea Mon Sep 17 00:00:00 2001 From: Neal Norwitz Date: Sun, 26 Aug 2007 04:51:10 +0000 Subject: [PATCH] Use unicode and remove support for some uses of str8. --- Objects/complexobject.c | 10 +++------- Objects/exceptions.c | 5 +---- Objects/listobject.c | 8 ++++++-- Objects/longobject.c | 14 +++----------- Objects/moduleobject.c | 9 ++------- 5 files changed, 15 insertions(+), 31 deletions(-) diff --git a/Objects/complexobject.c b/Objects/complexobject.c index 253f7149259..fa493d76e88 100644 --- a/Objects/complexobject.c +++ b/Objects/complexobject.c @@ -649,11 +649,7 @@ complex_subtype_from_string(PyTypeObject *type, PyObject *v) char s_buffer[256]; Py_ssize_t len; - if (PyString_Check(v)) { - s = PyString_AS_STRING(v); - len = PyString_GET_SIZE(v); - } - else if (PyUnicode_Check(v)) { + if (PyUnicode_Check(v)) { if (PyUnicode_GET_SIZE(v) >= (Py_ssize_t)sizeof(s_buffer)) { PyErr_SetString(PyExc_ValueError, "complex() literal too large to convert"); @@ -833,7 +829,7 @@ complex_new(PyTypeObject *type, PyObject *args, PyObject *kwds) Py_INCREF(r); return r; } - if (PyString_Check(r) || PyUnicode_Check(r)) { + if (PyUnicode_Check(r)) { if (i != NULL) { PyErr_SetString(PyExc_TypeError, "complex() can't take second arg" @@ -842,7 +838,7 @@ complex_new(PyTypeObject *type, PyObject *args, PyObject *kwds) } return complex_subtype_from_string(type, r); } - if (i != NULL && (PyString_Check(i) || PyUnicode_Check(i))) { + if (i != NULL && PyUnicode_Check(i)) { PyErr_SetString(PyExc_TypeError, "complex() second arg can't be a string"); return NULL; diff --git a/Objects/exceptions.c b/Objects/exceptions.c index 7afaac04f3f..e900243448f 100644 --- a/Objects/exceptions.c +++ b/Objects/exceptions.c @@ -833,10 +833,7 @@ SyntaxError_str(PySyntaxErrorObject *self) /* XXX -- do all the additional formatting with filename and lineno here */ - if (self->filename) { - if (PyString_Check(self->filename)) - filename = PyString_AsString(self->filename); - else if (PyUnicode_Check(self->filename)) + if (self->filename && PyUnicode_Check(self->filename)) { filename = PyUnicode_AsString(self->filename); } have_lineno = (self->lineno != NULL) && PyInt_CheckExact(self->lineno); diff --git a/Objects/listobject.c b/Objects/listobject.c index 50d9d9b76d2..3de07c9bc60 100644 --- a/Objects/listobject.c +++ b/Objects/listobject.c @@ -1942,6 +1942,7 @@ static int is_default_cmp(PyObject *cmpfunc) { PyCFunctionObject *f; + const char *module; if (cmpfunc == NULL || cmpfunc == Py_None) return 1; if (!PyCFunction_Check(cmpfunc)) @@ -1949,9 +1950,12 @@ is_default_cmp(PyObject *cmpfunc) f = (PyCFunctionObject *)cmpfunc; if (f->m_self != NULL) return 0; - if (!PyString_Check(f->m_module)) + if (!PyUnicode_Check(f->m_module)) return 0; - if (strcmp(PyString_AS_STRING(f->m_module), "__builtin__") != 0) + module = PyUnicode_AsString(f->m_module); + if (module == NULL) + return 0; + if (strcmp(module, "__builtin__") != 0) return 0; if (strcmp(f->m_ml->ml_name, "cmp") != 0) return 0; diff --git a/Objects/longobject.c b/Objects/longobject.c index b724edf3e07..cdf8b99cafa 100644 --- a/Objects/longobject.c +++ b/Objects/longobject.c @@ -3517,19 +3517,11 @@ long_new(PyTypeObject *type, PyObject *args, PyObject *kwds) return PyLong_FromLong(0L); if (base == -909) return PyNumber_Long(x); - else if (PyString_Check(x) || PyBytes_Check(x)) { + else if (PyBytes_Check(x)) { /* Since PyLong_FromString doesn't have a length parameter, * check here for possible NULs in the string. */ - char *string; - int size; - if (PyBytes_Check(x)) { - string = PyBytes_AS_STRING(x); - size = PyBytes_GET_SIZE(x); - } - else { - string = PyString_AS_STRING(x); - size = PyString_GET_SIZE(x); - } + char *string = PyBytes_AS_STRING(x); + int size = PyBytes_GET_SIZE(x); if (strlen(string) != size) { /* We only see this if there's a null byte in x, x is a str8 or a bytes, *and* a base is given. */ diff --git a/Objects/moduleobject.c b/Objects/moduleobject.c index 19bb149c0e8..fbb9fba9e90 100644 --- a/Objects/moduleobject.c +++ b/Objects/moduleobject.c @@ -66,17 +66,12 @@ PyModule_GetName(PyObject *m) d = ((PyModuleObject *)m)->md_dict; if (d == NULL || (nameobj = PyDict_GetItemString(d, "__name__")) == NULL || - !(PyString_Check(nameobj) || PyUnicode_Check(nameobj))) + !PyUnicode_Check(nameobj)) { PyErr_SetString(PyExc_SystemError, "nameless module"); return NULL; } - if (PyUnicode_Check(nameobj)) { - nameobj = _PyUnicode_AsDefaultEncodedString(nameobj, NULL); - if (nameobj == NULL) - return NULL; - } - return PyString_AsString(nameobj); + return PyUnicode_AsString(nameobj); } const char *