diff options
-rw-r--r-- | Include/unicodeobject.h | 3 | ||||
-rw-r--r-- | Objects/stringlib/unicode_format.h | 20 | ||||
-rw-r--r-- | Objects/unicodeobject.c | 258 |
3 files changed, 133 insertions, 148 deletions
diff --git a/Include/unicodeobject.h b/Include/unicodeobject.h index dc3bad7..8e29f34 100644 --- a/Include/unicodeobject.h +++ b/Include/unicodeobject.h @@ -2000,9 +2000,8 @@ PyAPI_FUNC(Py_UNICODE*) PyUnicode_AsUnicodeCopy( #endif /* Py_LIMITED_API */ #if defined(Py_DEBUG) && !defined(Py_LIMITED_API) -/* FIXME: use PyObject* type for op */ PyAPI_FUNC(int) _PyUnicode_CheckConsistency( - void *op, + PyObject *op, int check_content); #endif diff --git a/Objects/stringlib/unicode_format.h b/Objects/stringlib/unicode_format.h index 6281af0..7de5438 100644 --- a/Objects/stringlib/unicode_format.h +++ b/Objects/stringlib/unicode_format.h @@ -528,7 +528,7 @@ render_field(PyObject *fieldobj, SubString *format_spec, _PyAccu *acc) PyObject *result = NULL; PyObject *format_spec_object = NULL; PyObject *(*formatter)(PyObject *, PyObject *, Py_ssize_t, Py_ssize_t) = NULL; - + /* If we know the type exactly, skip the lookup of __format__ and just call the formatter directly. */ if (PyUnicode_CheckExact(fieldobj)) @@ -654,7 +654,7 @@ typedef struct { } MarkupIterator; static int -MarkupIterator_init(MarkupIterator *self, PyObject *str, +MarkupIterator_init(MarkupIterator *self, PyObject *str, Py_ssize_t start, Py_ssize_t end) { SubString_init(&self->str, str, start, end); @@ -713,8 +713,8 @@ MarkupIterator_next(MarkupIterator *self, SubString *literal, at_end = self->str.start >= self->str.end; len = self->str.start - start; - if ((c == '}') && (at_end || - (c != PyUnicode_READ_CHAR(self->str.str, + if ((c == '}') && (at_end || + (c != PyUnicode_READ_CHAR(self->str.str, self->str.start)))) { PyErr_SetString(PyExc_ValueError, "Single '}' encountered " "in format string"); @@ -992,9 +992,7 @@ do_string_format_map(PyObject *self, PyObject *obj) typedef struct { PyObject_HEAD - - PyUnicodeObject *str; - + PyObject *str; MarkupIterator it_markup; } formatteriterobject; @@ -1121,7 +1119,7 @@ static PyTypeObject PyFormatterIter_Type = { describing the parsed elements. It's a wrapper around stringlib/string_format.h's MarkupIterator */ static PyObject * -formatter_parser(PyObject *ignored, PyUnicodeObject *self) +formatter_parser(PyObject *ignored, PyObject *self) { formatteriterobject *it; @@ -1158,9 +1156,7 @@ formatter_parser(PyObject *ignored, PyUnicodeObject *self) typedef struct { PyObject_HEAD - - PyUnicodeObject *str; - + PyObject *str; FieldNameIterator it_field; } fieldnameiterobject; @@ -1261,7 +1257,7 @@ static PyTypeObject PyFieldNameIter_Type = { field_name_split. The iterator it returns is a FieldNameIterator */ static PyObject * -formatter_field_name_split(PyObject *ignored, PyUnicodeObject *self) +formatter_field_name_split(PyObject *ignored, PyObject *self) { SubString first; Py_ssize_t first_idx; diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c index b0a712d..0c5c485 100644 --- a/Objects/unicodeobject.c +++ b/Objects/unicodeobject.c @@ -116,7 +116,7 @@ extern "C" { (assert(_PyUnicode_CHECK(op)), \ (PyUnicode_IS_READY(op) ? \ 0 : \ - _PyUnicode_Ready((PyObject *)(op)))) + _PyUnicode_Ready(op))) #define _PyUnicode_READY_REPLACE(p_obj) \ (assert(_PyUnicode_CHECK(*p_obj)), \ @@ -308,8 +308,7 @@ PyUnicode_GetMax(void) #ifdef Py_DEBUG int -/* FIXME: use PyObject* type for op */ -_PyUnicode_CheckConsistency(void *op, int check_content) +_PyUnicode_CheckConsistency(PyObject *op, int check_content) { PyASCIIObject *ascii; unsigned int kind; @@ -406,7 +405,7 @@ _PyUnicode_CheckConsistency(void *op, int check_content) else assert(maxchar >= 0x10000); } - if (check_content && !unicode_is_singleton((PyObject*)ascii)) + if (check_content && !unicode_is_singleton(op)) assert(ascii->hash == -1); return 1; } @@ -764,7 +763,7 @@ _PyUnicode_New(Py_ssize_t length) _PyUnicode_LENGTH(unicode) = 0; _PyUnicode_UTF8(unicode) = NULL; _PyUnicode_UTF8_LENGTH(unicode) = 0; - assert(_PyUnicode_CheckConsistency(unicode, 0)); + assert(_PyUnicode_CheckConsistency((PyObject *)unicode, 0)); return unicode; onError: @@ -976,7 +975,7 @@ PyUnicode_New(Py_ssize_t size, Py_UCS4 maxchar) _PyUnicode_WSTR(unicode) = NULL; } } - assert(_PyUnicode_CheckConsistency(unicode, 0)); + assert(_PyUnicode_CheckConsistency((PyObject*)unicode, 0)); return obj; } @@ -1438,7 +1437,7 @@ unicode_dealloc(register PyObject *unicode) case SSTATE_INTERNED_MORTAL: /* revive dead object temporarily for DelItem */ Py_REFCNT(unicode) = 3; - if (PyDict_DelItem(interned, (PyObject *)unicode) != 0) + if (PyDict_DelItem(interned, unicode) != 0) Py_FatalError( "deletion of interned string failed"); break; @@ -1456,12 +1455,12 @@ unicode_dealloc(register PyObject *unicode) PyObject_DEL(_PyUnicode_UTF8(unicode)); if (PyUnicode_IS_COMPACT(unicode)) { - Py_TYPE(unicode)->tp_free((PyObject *)unicode); + Py_TYPE(unicode)->tp_free(unicode); } else { if (_PyUnicode_DATA_ANY(unicode)) PyObject_DEL(_PyUnicode_DATA_ANY(unicode)); - Py_TYPE(unicode)->tp_free((PyObject *)unicode); + Py_TYPE(unicode)->tp_free(unicode); } } @@ -2607,7 +2606,7 @@ PyUnicode_FromFormatV(const char *format, va_list vargs) if (numberresults) PyObject_Free(numberresults); assert(_PyUnicode_CheckConsistency(string, 1)); - return (PyObject *)string; + return string; fail: if (callresults) { PyObject **callresult2 = callresults; @@ -3586,7 +3585,7 @@ unicode_decode_call_errorhandler(const char *errors, PyObject **errorHandler, const char *encoding, const char *reason, const char **input, const char **inend, Py_ssize_t *startinpos, Py_ssize_t *endinpos, PyObject **exceptionObject, const char **inptr, - PyUnicodeObject **output, Py_ssize_t *outpos, Py_UNICODE **outptr) + PyObject **output, Py_ssize_t *outpos, Py_UNICODE **outptr) { static char *argparse = "O!n;decoding error handler must return (str, int) tuple"; @@ -3657,7 +3656,7 @@ unicode_decode_call_errorhandler(const char *errors, PyObject **errorHandler, if (requiredsize > outsize) { if (requiredsize<2*outsize) requiredsize = 2*outsize; - if (PyUnicode_Resize((PyObject**)output, requiredsize) < 0) + if (PyUnicode_Resize(output, requiredsize) < 0) goto onError; *outptr = PyUnicode_AS_UNICODE(*output) + *outpos; } @@ -3782,7 +3781,7 @@ PyUnicode_DecodeUTF7Stateful(const char *s, Py_ssize_t endinpos; Py_ssize_t outpos; const char *e; - PyUnicodeObject *unicode; + PyObject *unicode; Py_UNICODE *p; const char *errmsg = ""; int inShift = 0; @@ -3793,13 +3792,13 @@ PyUnicode_DecodeUTF7Stateful(const char *s, PyObject *errorHandler = NULL; PyObject *exc = NULL; - unicode = _PyUnicode_New(size); + unicode = (PyObject*)_PyUnicode_New(size); if (!unicode) return NULL; if (size == 0) { if (consumed) *consumed = 0; - return (PyObject *)unicode; + return unicode; } p = PyUnicode_AS_UNICODE(unicode); @@ -3947,7 +3946,7 @@ utf7Error: } } - if (PyUnicode_Resize((PyObject**)&unicode, p - PyUnicode_AS_UNICODE(unicode)) < 0) + if (PyUnicode_Resize(&unicode, p - PyUnicode_AS_UNICODE(unicode)) < 0) goto onError; Py_XDECREF(errorHandler); @@ -3959,7 +3958,7 @@ utf7Error: } #endif assert(_PyUnicode_CheckConsistency(unicode, 1)); - return (PyObject *)unicode; + return unicode; onError: Py_XDECREF(errorHandler); @@ -4261,7 +4260,7 @@ PyUnicode_DecodeUTF8Stateful(const char *s, Py_ssize_t startinpos; Py_ssize_t endinpos; const char *e, *aligned_end; - PyUnicodeObject *unicode; + PyObject *unicode; const char *errmsg = ""; PyObject *errorHandler = NULL; PyObject *exc = NULL; @@ -4284,7 +4283,7 @@ PyUnicode_DecodeUTF8Stateful(const char *s, maxchar = utf8_max_char_size_and_has_errors(s, size, &unicode_size, consumed, &has_errors); if (has_errors) { - unicode = _PyUnicode_New(size); + unicode = (PyObject*)_PyUnicode_New(size); if (!unicode) return NULL; kind = PyUnicode_WCHAR_KIND; @@ -4292,7 +4291,7 @@ PyUnicode_DecodeUTF8Stateful(const char *s, assert(data != NULL); } else { - unicode = (PyUnicodeObject *)PyUnicode_New(unicode_size, maxchar); + unicode = PyUnicode_New(unicode_size, maxchar); if (!unicode) return NULL; /* When the string is ASCII only, just use memcpy and return. @@ -4300,7 +4299,7 @@ PyUnicode_DecodeUTF8Stateful(const char *s, sequence at the end of the ASCII block. */ if (maxchar < 128 && size == unicode_size) { Py_MEMCPY(PyUnicode_1BYTE_DATA(unicode), s, unicode_size); - return (PyObject *)unicode; + return unicode; } kind = PyUnicode_KIND(unicode); data = PyUnicode_DATA(unicode); @@ -4482,10 +4481,10 @@ PyUnicode_DecodeUTF8Stateful(const char *s, /* If this is not yet a resizable string, make it one.. */ if (kind != PyUnicode_WCHAR_KIND) { const Py_UNICODE *u; - PyUnicodeObject *new_unicode = _PyUnicode_New(size); + PyObject *new_unicode = (PyObject*)_PyUnicode_New(size); if (!new_unicode) goto onError; - u = PyUnicode_AsUnicode((PyObject *)unicode); + u = PyUnicode_AsUnicode(unicode); if (!u) goto onError; #if SIZEOF_WCHAR_T == 2 @@ -4519,7 +4518,7 @@ PyUnicode_DecodeUTF8Stateful(const char *s, /* Adjust length and ready string when it contained errors and is of the old resizable kind. */ if (kind == PyUnicode_WCHAR_KIND) { - if (PyUnicode_Resize((PyObject**)&unicode, i) < 0) + if (PyUnicode_Resize(&unicode, i) < 0) goto onError; } @@ -4532,7 +4531,7 @@ PyUnicode_DecodeUTF8Stateful(const char *s, } #endif assert(_PyUnicode_CheckConsistency(unicode, 1)); - return (PyObject *)unicode; + return unicode; onError: Py_XDECREF(errorHandler); @@ -4666,7 +4665,7 @@ _Py_DecodeUTF8_surrogateescape(const char *s, Py_ssize_t size) the excess memory at the end. */ PyObject * -_PyUnicode_AsUTF8String(PyObject *obj, const char *errors) +_PyUnicode_AsUTF8String(PyObject *unicode, const char *errors) { #define MAX_SHORT_UNICHARS 300 /* largest size we'll do on the stack */ @@ -4681,7 +4680,6 @@ _PyUnicode_AsUTF8String(PyObject *obj, const char *errors) int kind; void *data; Py_ssize_t size; - PyUnicodeObject *unicode = (PyUnicodeObject *)obj; #if SIZEOF_WCHAR_T == 2 Py_ssize_t wchar_offset = 0; #endif @@ -4745,7 +4743,7 @@ _PyUnicode_AsUTF8String(PyObject *obj, const char *errors) #endif rep = unicode_encode_call_errorhandler( errors, &errorHandler, "utf-8", "surrogates not allowed", - obj, &exc, startpos, startpos+1, &newpos); + unicode, &exc, startpos, startpos+1, &newpos); if (!rep) goto error; @@ -4792,7 +4790,7 @@ _PyUnicode_AsUTF8String(PyObject *obj, const char *errors) c = prep[k]; if (0x80 <= c) { raise_encode_exception_obj(&exc, "utf-8", - (PyObject*)unicode, + unicode, i-1, i, "surrogates not allowed"); goto error; @@ -4885,7 +4883,7 @@ PyUnicode_DecodeUTF32Stateful(const char *s, Py_ssize_t startinpos; Py_ssize_t endinpos; Py_ssize_t outpos; - PyUnicodeObject *unicode; + PyObject *unicode; Py_UNICODE *p; #ifndef Py_UNICODE_WIDE int pairs = 0; @@ -4965,11 +4963,11 @@ PyUnicode_DecodeUTF32Stateful(const char *s, #endif /* This might be one to much, because of a BOM */ - unicode = _PyUnicode_New((size+3)/4+pairs); + unicode = (PyObject*)_PyUnicode_New((size+3)/4+pairs); if (!unicode) return NULL; if (size == 0) - return (PyObject *)unicode; + return unicode; /* Unpack UTF-32 encoded data */ p = PyUnicode_AS_UNICODE(unicode); @@ -5025,7 +5023,7 @@ PyUnicode_DecodeUTF32Stateful(const char *s, *consumed = (const char *)q-starts; /* Adjust length */ - if (PyUnicode_Resize((PyObject**)&unicode, p - PyUnicode_AS_UNICODE(unicode)) < 0) + if (PyUnicode_Resize(&unicode, p - PyUnicode_AS_UNICODE(unicode)) < 0) goto onError; Py_XDECREF(errorHandler); @@ -5037,7 +5035,7 @@ PyUnicode_DecodeUTF32Stateful(const char *s, } #endif assert(_PyUnicode_CheckConsistency(unicode, 1)); - return (PyObject *)unicode; + return unicode; onError: Py_DECREF(unicode); @@ -5185,7 +5183,7 @@ PyUnicode_DecodeUTF16Stateful(const char *s, Py_ssize_t startinpos; Py_ssize_t endinpos; Py_ssize_t outpos; - PyUnicodeObject *unicode; + PyObject *unicode; Py_UNICODE *p; const unsigned char *q, *e, *aligned_end; int bo = 0; /* assume native ordering by default */ @@ -5202,11 +5200,11 @@ PyUnicode_DecodeUTF16Stateful(const char *s, /* Note: size will always be longer than the resulting Unicode character count */ - unicode = _PyUnicode_New(size); + unicode = (PyObject*)_PyUnicode_New(size); if (!unicode) return NULL; if (size == 0) - return (PyObject *)unicode; + return unicode; /* Unpack UTF-16 encoded data */ p = PyUnicode_AS_UNICODE(unicode); @@ -5426,7 +5424,7 @@ PyUnicode_DecodeUTF16Stateful(const char *s, *consumed = (const char *)q-starts; /* Adjust length */ - if (PyUnicode_Resize((PyObject**)&unicode, p - PyUnicode_AS_UNICODE(unicode)) < 0) + if (PyUnicode_Resize(&unicode, p - PyUnicode_AS_UNICODE(unicode)) < 0) goto onError; Py_XDECREF(errorHandler); @@ -5438,7 +5436,7 @@ PyUnicode_DecodeUTF16Stateful(const char *s, } #endif assert(_PyUnicode_CheckConsistency(unicode, 1)); - return (PyObject *)unicode; + return unicode; onError: Py_DECREF(unicode); @@ -5627,7 +5625,7 @@ PyUnicode_DecodeUnicodeEscape(const char *s, Py_ssize_t startinpos; Py_ssize_t endinpos; int j; - PyUnicodeObject *v; + PyObject *v; Py_UNICODE *p; const char *end; char* message; @@ -5647,7 +5645,7 @@ PyUnicode_DecodeUnicodeEscape(const char *s, or it contains \x, \u, ... escape sequences. then we create a legacy wchar string and resize it at the end of this function. */ if (ascii_length >= 0) { - v = (PyUnicodeObject *)PyUnicode_New(ascii_length, 127); + v = PyUnicode_New(ascii_length, 127); if (!v) goto onError; assert(PyUnicode_KIND(v) == PyUnicode_1BYTE_KIND); @@ -5660,7 +5658,7 @@ PyUnicode_DecodeUnicodeEscape(const char *s, length after conversion to the true value. (but if the error callback returns a long replacement string we'll have to allocate more space) */ - v = _PyUnicode_New(size); + v = (PyObject*)_PyUnicode_New(size); if (!v) goto onError; kind = PyUnicode_WCHAR_KIND; @@ -5668,7 +5666,7 @@ PyUnicode_DecodeUnicodeEscape(const char *s, } if (size == 0) - return (PyObject *)v; + return v; i = 0; end = s + size; @@ -5888,7 +5886,7 @@ PyUnicode_DecodeUnicodeEscape(const char *s, if (kind == PyUnicode_WCHAR_KIND) { - if (PyUnicode_Resize((PyObject**)&v, i) < 0) + if (PyUnicode_Resize(&v, i) < 0) goto onError; } Py_XDECREF(errorHandler); @@ -5900,7 +5898,7 @@ PyUnicode_DecodeUnicodeEscape(const char *s, } #endif assert(_PyUnicode_CheckConsistency(v, 1)); - return (PyObject *)v; + return v; ucnhashError: PyErr_SetString( @@ -6095,7 +6093,7 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s, Py_ssize_t startinpos; Py_ssize_t endinpos; Py_ssize_t outpos; - PyUnicodeObject *v; + PyObject *v; Py_UNICODE *p; const char *end; const char *bs; @@ -6106,11 +6104,11 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s, Unicode string, so we start with size here and then reduce the length after conversion to the true value. (But decoding error handler might have to resize the string) */ - v = _PyUnicode_New(size); + v = (PyObject*)_PyUnicode_New(size); if (v == NULL) goto onError; if (size == 0) - return (PyObject *)v; + return v; p = PyUnicode_AS_UNICODE(v); end = s + size; while (s < end) { @@ -6191,7 +6189,7 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s, nextByte: ; } - if (PyUnicode_Resize((PyObject**)&v, p - PyUnicode_AS_UNICODE(v)) < 0) + if (PyUnicode_Resize(&v, p - PyUnicode_AS_UNICODE(v)) < 0) goto onError; Py_XDECREF(errorHandler); Py_XDECREF(exc); @@ -6202,7 +6200,7 @@ PyUnicode_DecodeRawUnicodeEscape(const char *s, } #endif assert(_PyUnicode_CheckConsistency(v, 1)); - return (PyObject *)v; + return v; onError: Py_XDECREF(v); @@ -6325,7 +6323,7 @@ _PyUnicode_DecodeUnicodeInternal(const char *s, Py_ssize_t startinpos; Py_ssize_t endinpos; Py_ssize_t outpos; - PyUnicodeObject *v; + PyObject *v; Py_UNICODE *p; const char *end; const char *reason; @@ -6337,13 +6335,13 @@ _PyUnicode_DecodeUnicodeInternal(const char *s, #endif /* XXX overflow detection missing */ - v = _PyUnicode_New((size+Py_UNICODE_SIZE-1)/ Py_UNICODE_SIZE); + v = (PyObject*)_PyUnicode_New((size+Py_UNICODE_SIZE-1)/ Py_UNICODE_SIZE); if (v == NULL) goto onError; /* Intentionally PyUnicode_GET_SIZE instead of PyUnicode_GET_LENGTH as string was created with the old API. */ if (PyUnicode_GET_SIZE(v) == 0) - return (PyObject *)v; + return v; p = PyUnicode_AS_UNICODE(v); end = s + size; @@ -6382,7 +6380,7 @@ _PyUnicode_DecodeUnicodeInternal(const char *s, } } - if (PyUnicode_Resize((PyObject**)&v, p - PyUnicode_AS_UNICODE(v)) < 0) + if (PyUnicode_Resize(&v, p - PyUnicode_AS_UNICODE(v)) < 0) goto onError; Py_XDECREF(errorHandler); Py_XDECREF(exc); @@ -6393,7 +6391,7 @@ _PyUnicode_DecodeUnicodeInternal(const char *s, } #endif assert(_PyUnicode_CheckConsistency(v, 1)); - return (PyObject *)v; + return v; onError: Py_XDECREF(v); @@ -6802,7 +6800,7 @@ PyUnicode_DecodeASCII(const char *s, const char *errors) { const char *starts = s; - PyUnicodeObject *v; + PyObject *v; Py_UNICODE *u; Py_ssize_t startinpos; Py_ssize_t endinpos; @@ -6851,11 +6849,11 @@ PyUnicode_DecodeASCII(const char *s, if (!has_error) return unicode_fromascii((const unsigned char *)s, size); - v = _PyUnicode_New(size); + v = (PyObject*)_PyUnicode_New(size); if (v == NULL) goto onError; if (size == 0) - return (PyObject *)v; + return v; u = PyUnicode_AS_UNICODE(v); e = s + size; while (s < e) { @@ -6877,7 +6875,7 @@ PyUnicode_DecodeASCII(const char *s, } } if (u - PyUnicode_AS_UNICODE(v) < PyUnicode_GET_SIZE(v)) - if (PyUnicode_Resize((PyObject**)&v, u - PyUnicode_AS_UNICODE(v)) < 0) + if (PyUnicode_Resize(&v, u - PyUnicode_AS_UNICODE(v)) < 0) goto onError; Py_XDECREF(errorHandler); Py_XDECREF(exc); @@ -6888,7 +6886,7 @@ PyUnicode_DecodeASCII(const char *s, } #endif assert(_PyUnicode_CheckConsistency(v, 1)); - return (PyObject *)v; + return v; onError: Py_XDECREF(v); @@ -7677,7 +7675,7 @@ PyUnicode_DecodeCharmap(const char *s, Py_ssize_t endinpos; Py_ssize_t outpos; const char *e; - PyUnicodeObject *v; + PyObject *v; Py_UNICODE *p; Py_ssize_t extrachars = 0; PyObject *errorHandler = NULL; @@ -7689,11 +7687,11 @@ PyUnicode_DecodeCharmap(const char *s, if (mapping == NULL) return PyUnicode_DecodeLatin1(s, size, errors); - v = _PyUnicode_New(size); + v = (PyObject*)_PyUnicode_New(size); if (v == NULL) goto onError; if (size == 0) - return (PyObject *)v; + return v; p = PyUnicode_AS_UNICODE(v); e = s + size; if (PyUnicode_CheckExact(mapping)) { @@ -7788,8 +7786,8 @@ PyUnicode_DecodeCharmap(const char *s, (targetsize << 2); extrachars += needed; /* XXX overflow detection missing */ - if (PyUnicode_Resize((PyObject**)&v, - PyUnicode_GET_SIZE(v) + needed) < 0) { + if (PyUnicode_Resize(&v, + PyUnicode_GET_SIZE(v) + needed) < 0) { Py_DECREF(x); goto onError; } @@ -7815,7 +7813,7 @@ PyUnicode_DecodeCharmap(const char *s, } } if (p - PyUnicode_AS_UNICODE(v) < PyUnicode_GET_SIZE(v)) - if (PyUnicode_Resize((PyObject**)&v, p - PyUnicode_AS_UNICODE(v)) < 0) + if (PyUnicode_Resize(&v, p - PyUnicode_AS_UNICODE(v)) < 0) goto onError; Py_XDECREF(errorHandler); Py_XDECREF(exc); @@ -7826,7 +7824,7 @@ PyUnicode_DecodeCharmap(const char *s, } #endif assert(_PyUnicode_CheckConsistency(v, 1)); - return (PyObject *)v; + return v; onError: Py_XDECREF(errorHandler); @@ -9192,12 +9190,12 @@ PyUnicode_Count(PyObject *str, kind = kind1 > kind2 ? kind1 : kind2; buf1 = PyUnicode_DATA(str_obj); if (kind1 != kind) - buf1 = _PyUnicode_AsKind((PyObject*)str_obj, kind); + buf1 = _PyUnicode_AsKind(str_obj, kind); if (!buf1) goto onError; buf2 = PyUnicode_DATA(sub_obj); if (kind2 != kind) - buf2 = _PyUnicode_AsKind((PyObject*)sub_obj, kind); + buf2 = _PyUnicode_AsKind(sub_obj, kind); if (!buf2) goto onError; len1 = PyUnicode_GET_LENGTH(str_obj); @@ -9440,7 +9438,7 @@ fixup(PyObject *self, (to save space, not time) */ Py_INCREF(self); Py_DECREF(u); - return (PyObject*) self; + return self; } else if (maxchar_new == maxchar_old) { return u; @@ -9918,21 +9916,21 @@ PyUnicode_Splitlines(PyObject *string, int keepends) case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(string)) list = asciilib_splitlines( - (PyObject*) string, PyUnicode_1BYTE_DATA(string), + string, PyUnicode_1BYTE_DATA(string), PyUnicode_GET_LENGTH(string), keepends); else list = ucs1lib_splitlines( - (PyObject*) string, PyUnicode_1BYTE_DATA(string), + string, PyUnicode_1BYTE_DATA(string), PyUnicode_GET_LENGTH(string), keepends); break; case PyUnicode_2BYTE_KIND: list = ucs2lib_splitlines( - (PyObject*) string, PyUnicode_2BYTE_DATA(string), + string, PyUnicode_2BYTE_DATA(string), PyUnicode_GET_LENGTH(string), keepends); break; case PyUnicode_4BYTE_KIND: list = ucs4lib_splitlines( - (PyObject*) string, PyUnicode_4BYTE_DATA(string), + string, PyUnicode_4BYTE_DATA(string), PyUnicode_GET_LENGTH(string), keepends); break; default: @@ -9964,22 +9962,22 @@ split(PyObject *self, case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(self)) return asciilib_split_whitespace( - (PyObject*) self, PyUnicode_1BYTE_DATA(self), + self, PyUnicode_1BYTE_DATA(self), PyUnicode_GET_LENGTH(self), maxcount ); else return ucs1lib_split_whitespace( - (PyObject*) self, PyUnicode_1BYTE_DATA(self), + self, PyUnicode_1BYTE_DATA(self), PyUnicode_GET_LENGTH(self), maxcount ); case PyUnicode_2BYTE_KIND: return ucs2lib_split_whitespace( - (PyObject*) self, PyUnicode_2BYTE_DATA(self), + self, PyUnicode_2BYTE_DATA(self), PyUnicode_GET_LENGTH(self), maxcount ); case PyUnicode_4BYTE_KIND: return ucs4lib_split_whitespace( - (PyObject*) self, PyUnicode_4BYTE_DATA(self), + self, PyUnicode_4BYTE_DATA(self), PyUnicode_GET_LENGTH(self), maxcount ); default: @@ -9996,11 +9994,11 @@ split(PyObject *self, buf1 = PyUnicode_DATA(self); buf2 = PyUnicode_DATA(substring); if (kind1 != kind) - buf1 = _PyUnicode_AsKind((PyObject*)self, kind); + buf1 = _PyUnicode_AsKind(self, kind); if (!buf1) return NULL; if (kind2 != kind) - buf2 = _PyUnicode_AsKind((PyObject*)substring, kind); + buf2 = _PyUnicode_AsKind(substring, kind); if (!buf2) { if (kind1 != kind) PyMem_Free(buf1); return NULL; @@ -10012,18 +10010,18 @@ split(PyObject *self, case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(self) && PyUnicode_IS_ASCII(substring)) out = asciilib_split( - (PyObject*) self, buf1, len1, buf2, len2, maxcount); + self, buf1, len1, buf2, len2, maxcount); else out = ucs1lib_split( - (PyObject*) self, buf1, len1, buf2, len2, maxcount); + self, buf1, len1, buf2, len2, maxcount); break; case PyUnicode_2BYTE_KIND: out = ucs2lib_split( - (PyObject*) self, buf1, len1, buf2, len2, maxcount); + self, buf1, len1, buf2, len2, maxcount); break; case PyUnicode_4BYTE_KIND: out = ucs4lib_split( - (PyObject*) self, buf1, len1, buf2, len2, maxcount); + self, buf1, len1, buf2, len2, maxcount); break; default: out = NULL; @@ -10056,22 +10054,22 @@ rsplit(PyObject *self, case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(self)) return asciilib_rsplit_whitespace( - (PyObject*) self, PyUnicode_1BYTE_DATA(self), + self, PyUnicode_1BYTE_DATA(self), PyUnicode_GET_LENGTH(self), maxcount ); else return ucs1lib_rsplit_whitespace( - (PyObject*) self, PyUnicode_1BYTE_DATA(self), + self, PyUnicode_1BYTE_DATA(self), PyUnicode_GET_LENGTH(self), maxcount ); case PyUnicode_2BYTE_KIND: return ucs2lib_rsplit_whitespace( - (PyObject*) self, PyUnicode_2BYTE_DATA(self), + self, PyUnicode_2BYTE_DATA(self), PyUnicode_GET_LENGTH(self), maxcount ); case PyUnicode_4BYTE_KIND: return ucs4lib_rsplit_whitespace( - (PyObject*) self, PyUnicode_4BYTE_DATA(self), + self, PyUnicode_4BYTE_DATA(self), PyUnicode_GET_LENGTH(self), maxcount ); default: @@ -10088,11 +10086,11 @@ rsplit(PyObject *self, buf1 = PyUnicode_DATA(self); buf2 = PyUnicode_DATA(substring); if (kind1 != kind) - buf1 = _PyUnicode_AsKind((PyObject*)self, kind); + buf1 = _PyUnicode_AsKind(self, kind); if (!buf1) return NULL; if (kind2 != kind) - buf2 = _PyUnicode_AsKind((PyObject*)substring, kind); + buf2 = _PyUnicode_AsKind(substring, kind); if (!buf2) { if (kind1 != kind) PyMem_Free(buf1); return NULL; @@ -10104,18 +10102,18 @@ rsplit(PyObject *self, case PyUnicode_1BYTE_KIND: if (PyUnicode_IS_ASCII(self) && PyUnicode_IS_ASCII(substring)) out = asciilib_rsplit( - (PyObject*) self, buf1, len1, buf2, len2, maxcount); + self, buf1, len1, buf2, len2, maxcount); else out = ucs1lib_rsplit( - (PyObject*) self, buf1, len1, buf2, len2, maxcount); + self, buf1, len1, buf2, len2, maxcount); break; case PyUnicode_2BYTE_KIND: out = ucs2lib_rsplit( - (PyObject*) self, buf1, len1, buf2, len2, maxcount); + self, buf1, len1, buf2, len2, maxcount); break; case PyUnicode_4BYTE_KIND: out = ucs4lib_rsplit( - (PyObject*) self, buf1, len1, buf2, len2, maxcount); + self, buf1, len1, buf2, len2, maxcount); break; default: out = NULL; @@ -10417,7 +10415,7 @@ replace(PyObject *self, PyObject *str1, PyMem_FREE(buf2); if (PyUnicode_CheckExact(self)) { Py_INCREF(self); - return (PyObject *) self; + return self; } return PyUnicode_Copy(self); error: @@ -10490,7 +10488,7 @@ unicode_capwords(PyObject *self) onError: Py_DECREF(list); - return (PyObject *)item; + return item; } #endif @@ -10540,7 +10538,7 @@ unicode_center(PyObject *self, PyObject *args) if (_PyUnicode_LENGTH(self) >= width && PyUnicode_CheckExact(self)) { Py_INCREF(self); - return (PyObject*) self; + return self; } marg = width - _PyUnicode_LENGTH(self); @@ -10712,13 +10710,13 @@ PyUnicode_Contains(PyObject *container, PyObject *element) buf1 = PyUnicode_DATA(str); buf2 = PyUnicode_DATA(sub); if (kind1 != kind) - buf1 = _PyUnicode_AsKind((PyObject*)str, kind); + buf1 = _PyUnicode_AsKind(str, kind); if (!buf1) { Py_DECREF(sub); return -1; } if (kind2 != kind) - buf2 = _PyUnicode_AsKind((PyObject*)sub, kind); + buf2 = _PyUnicode_AsKind(sub, kind); if (!buf2) { Py_DECREF(sub); if (kind1 != kind) PyMem_Free(buf1); @@ -10929,13 +10927,13 @@ unicode_count(PyObject *self, PyObject *args) buf1 = PyUnicode_DATA(self); buf2 = PyUnicode_DATA(substring); if (kind1 != kind) - buf1 = _PyUnicode_AsKind((PyObject*)self, kind); + buf1 = _PyUnicode_AsKind(self, kind); if (!buf1) { Py_DECREF(substring); return NULL; } if (kind2 != kind) - buf2 = _PyUnicode_AsKind((PyObject*)substring, kind); + buf2 = _PyUnicode_AsKind(substring, kind); if (!buf2) { Py_DECREF(substring); if (kind1 != kind) PyMem_Free(buf1); @@ -11054,8 +11052,8 @@ unicode_expandtabs(PyObject *self, PyObject *args) } } if (!found && PyUnicode_CheckExact(self)) { - Py_INCREF((PyObject *) self); - return (PyObject *) self; + Py_INCREF(self); + return self; } /* Second pass: create output string and fill it */ @@ -11094,7 +11092,7 @@ unicode_expandtabs(PyObject *self, PyObject *args) } #endif assert(_PyUnicode_CheckConsistency(u, 1)); - return (PyObject*) u; + return u; overflow: PyErr_SetString(PyExc_OverflowError, "new string is too long"); @@ -11127,9 +11125,7 @@ unicode_find(PyObject *self, PyObject *args) if (PyUnicode_READY(substring) == -1) return NULL; - result = any_find_slice(1, - self, (PyObject*)substring, start, end - ); + result = any_find_slice(1, self, substring, start, end); Py_DECREF(substring); @@ -11219,9 +11215,7 @@ unicode_index(PyObject *self, PyObject *args) if (PyUnicode_READY(substring) == -1) return NULL; - result = any_find_slice(1, - self, (PyObject*)substring, start, end - ); + result = any_find_slice(1, self, substring, start, end); Py_DECREF(substring); @@ -11710,10 +11704,10 @@ unicode_ljust(PyObject *self, PyObject *args) if (_PyUnicode_LENGTH(self) >= width && PyUnicode_CheckExact(self)) { Py_INCREF(self); - return (PyObject*) self; + return self; } - return (PyObject*) pad(self, 0, width - _PyUnicode_LENGTH(self), fillchar); + return pad(self, 0, width - _PyUnicode_LENGTH(self), fillchar); } PyDoc_STRVAR(lower__doc__, @@ -11772,7 +11766,7 @@ _PyUnicode_XStrip(PyObject *self, int striptype, PyObject *sepobj) j++; } - return PyUnicode_Substring((PyObject*)self, i, j); + return PyUnicode_Substring(self, i, j); } PyObject* @@ -11849,7 +11843,7 @@ do_strip(PyObject *self, int striptype) j++; } - return PyUnicode_Substring((PyObject*)self, i, j); + return PyUnicode_Substring(self, i, j); } @@ -11939,7 +11933,7 @@ unicode_repeat(PyObject *str, Py_ssize_t len) if (len == 1 && PyUnicode_CheckExact(str)) { /* no repeat, return original string */ Py_INCREF(str); - return (PyObject*) str; + return str; } if (PyUnicode_READY(str) == -1) @@ -12230,9 +12224,7 @@ unicode_rfind(PyObject *self, PyObject *args) if (PyUnicode_READY(substring) == -1) return NULL; - result = any_find_slice(-1, - self, (PyObject*)substring, start, end - ); + result = any_find_slice(-1, self, substring, start, end); Py_DECREF(substring); @@ -12264,9 +12256,7 @@ unicode_rindex(PyObject *self, PyObject *args) if (PyUnicode_READY(substring) == -1) return NULL; - result = any_find_slice(-1, - self, (PyObject*)substring, start, end - ); + result = any_find_slice(-1, self, substring, start, end); Py_DECREF(substring); @@ -12301,10 +12291,10 @@ unicode_rjust(PyObject *self, PyObject *args) if (_PyUnicode_LENGTH(self) >= width && PyUnicode_CheckExact(self)) { Py_INCREF(self); - return (PyObject*) self; + return self; } - return (PyObject*) pad(self, width - _PyUnicode_LENGTH(self), 0, fillchar); + return pad(self, width - _PyUnicode_LENGTH(self), 0, fillchar); } PyObject * @@ -12353,7 +12343,7 @@ unicode_split(PyObject *self, PyObject *args) else if (PyUnicode_Check(substring)) return split(self, substring, maxcount); else - return PyUnicode_Split((PyObject *)self, substring, maxcount); + return PyUnicode_Split(self, substring, maxcount); } PyObject * @@ -12784,10 +12774,10 @@ unicode_zfill(PyObject *self, PyObject *args) if (PyUnicode_GET_LENGTH(self) >= width) { if (PyUnicode_CheckExact(self)) { Py_INCREF(self); - return (PyObject*) self; + return self; } else - return PyUnicode_Copy((PyObject*)self); + return PyUnicode_Copy(self); } fill = width - _PyUnicode_LENGTH(self); @@ -12808,7 +12798,7 @@ unicode_zfill(PyObject *self, PyObject *args) } assert(_PyUnicode_CheckConsistency(u, 1)); - return (PyObject*) u; + return u; } #if 0 @@ -13334,7 +13324,7 @@ PyUnicode_Format(PyObject *format, PyObject *args) fmtpos++; fmtcnt--; } - nonfmt = PyUnicode_Substring((PyObject *) uformat, nonfmtpos, fmtpos); + nonfmt = PyUnicode_Substring(uformat, nonfmtpos, fmtpos); if (nonfmt == NULL) goto onError; r = _PyAccu_Accumulate(&acc, nonfmt); @@ -13384,7 +13374,7 @@ PyUnicode_Format(PyObject *format, PyObject *args) "incomplete format key"); goto onError; } - key = PyUnicode_Substring((PyObject*)uformat, + key = PyUnicode_Substring(uformat, keystart, keystart + keylen); if (key == NULL) goto onError; @@ -13751,7 +13741,7 @@ PyUnicode_Format(PyObject *format, PyObject *args) Py_DECREF(uformat); Py_XDECREF(temp); Py_XDECREF(second); - return (PyObject *)result; + return result; onError: Py_DECREF(uformat); @@ -13781,7 +13771,7 @@ unicode_new(PyTypeObject *type, PyObject *args, PyObject *kwds) kwlist, &x, &encoding, &errors)) return NULL; if (x == NULL) - return (PyObject *)PyUnicode_New(0, 0); + return PyUnicode_New(0, 0); if (encoding == NULL && errors == NULL) return PyObject_Str(x); else @@ -13878,7 +13868,7 @@ unicode_subtype_new(PyTypeObject *type, PyObject *args, PyObject *kwds) _PyUnicode_HASH(self) = _PyUnicode_HASH(unicode); #endif Py_DECREF(unicode); - return (PyObject *)self; + return self; onError: Py_DECREF(unicode); @@ -14045,7 +14035,7 @@ PyUnicode_InternInPlace(PyObject **p) though the key is present in the dictionary, namely when this happens during a stack overflow. */ Py_ALLOW_RECURSION - t = PyDict_GetItem(interned, (PyObject *)s); + t = PyDict_GetItem(interned, s); Py_END_ALLOW_RECURSION if (t) { @@ -14056,7 +14046,7 @@ PyUnicode_InternInPlace(PyObject **p) } PyThreadState_GET()->recursion_critical = 1; - if (PyDict_SetItem(interned, (PyObject *)s, (PyObject *)s) < 0) { + if (PyDict_SetItem(interned, s, s) < 0) { PyErr_Clear(); PyThreadState_GET()->recursion_critical = 0; return; |