@@ -1405,8 +1405,9 @@ bytes_str(PyObject *op)
14051405}
14061406
14071407static Py_ssize_t
1408- bytes_length (PyBytesObject * a )
1408+ bytes_length (PyObject * self )
14091409{
1410+ PyBytesObject * a = _PyBytes_CAST (self );
14101411 return Py_SIZE (a );
14111412}
14121413
@@ -1456,11 +1457,9 @@ bytes_concat(PyObject *a, PyObject *b)
14561457}
14571458
14581459static PyObject *
1459- bytes_repeat (PyBytesObject * a , Py_ssize_t n )
1460+ bytes_repeat (PyObject * self , Py_ssize_t n )
14601461{
1461- Py_ssize_t size ;
1462- PyBytesObject * op ;
1463- size_t nbytes ;
1462+ PyBytesObject * a = _PyBytes_CAST (self );
14641463 if (n < 0 )
14651464 n = 0 ;
14661465 /* watch out for overflows: the size can overflow int,
@@ -1471,17 +1470,17 @@ bytes_repeat(PyBytesObject *a, Py_ssize_t n)
14711470 "repeated bytes are too long" );
14721471 return NULL ;
14731472 }
1474- size = Py_SIZE (a ) * n ;
1473+ Py_ssize_t size = Py_SIZE (a ) * n ;
14751474 if (size == Py_SIZE (a ) && PyBytes_CheckExact (a )) {
14761475 return Py_NewRef (a );
14771476 }
1478- nbytes = (size_t )size ;
1477+ size_t nbytes = (size_t )size ;
14791478 if (nbytes + PyBytesObject_SIZE <= nbytes ) {
14801479 PyErr_SetString (PyExc_OverflowError ,
14811480 "repeated bytes are too long" );
14821481 return NULL ;
14831482 }
1484- op = ( PyBytesObject * ) PyObject_Malloc (PyBytesObject_SIZE + nbytes );
1483+ PyBytesObject * op = PyObject_Malloc (PyBytesObject_SIZE + nbytes );
14851484 if (op == NULL ) {
14861485 return PyErr_NoMemory ();
14871486 }
@@ -1504,8 +1503,9 @@ bytes_contains(PyObject *self, PyObject *arg)
15041503}
15051504
15061505static PyObject *
1507- bytes_item (PyBytesObject * a , Py_ssize_t i )
1506+ bytes_item (PyObject * self , Py_ssize_t i )
15081507{
1508+ PyBytesObject * a = _PyBytes_CAST (self );
15091509 if (i < 0 || i >= Py_SIZE (a )) {
15101510 PyErr_SetString (PyExc_IndexError , "index out of range" );
15111511 return NULL ;
@@ -1531,29 +1531,28 @@ bytes_compare_eq(PyBytesObject *a, PyBytesObject *b)
15311531}
15321532
15331533static PyObject *
1534- bytes_richcompare (PyBytesObject * a , PyBytesObject * b , int op )
1534+ bytes_richcompare (PyObject * aa , PyObject * bb , int op )
15351535{
1536- int c ;
1537- Py_ssize_t len_a , len_b ;
1538- Py_ssize_t min_len ;
1539-
15401536 /* Make sure both arguments are strings. */
1541- if (!(PyBytes_Check (a ) && PyBytes_Check (b ))) {
1537+ if (!(PyBytes_Check (aa ) && PyBytes_Check (bb ))) {
15421538 if (_Py_GetConfig ()-> bytes_warning && (op == Py_EQ || op == Py_NE )) {
1543- if (PyUnicode_Check (a ) || PyUnicode_Check (b )) {
1539+ if (PyUnicode_Check (aa ) || PyUnicode_Check (bb )) {
15441540 if (PyErr_WarnEx (PyExc_BytesWarning ,
15451541 "Comparison between bytes and string" , 1 ))
15461542 return NULL ;
15471543 }
1548- if (PyLong_Check (a ) || PyLong_Check (b )) {
1544+ if (PyLong_Check (aa ) || PyLong_Check (bb )) {
15491545 if (PyErr_WarnEx (PyExc_BytesWarning ,
15501546 "Comparison between bytes and int" , 1 ))
15511547 return NULL ;
15521548 }
15531549 }
15541550 Py_RETURN_NOTIMPLEMENTED ;
15551551 }
1556- else if (a == b ) {
1552+
1553+ PyBytesObject * a = _PyBytes_CAST (aa );
1554+ PyBytesObject * b = _PyBytes_CAST (bb );
1555+ if (a == b ) {
15571556 switch (op ) {
15581557 case Py_EQ :
15591558 case Py_LE :
@@ -1575,25 +1574,29 @@ bytes_richcompare(PyBytesObject *a, PyBytesObject *b, int op)
15751574 return PyBool_FromLong (eq );
15761575 }
15771576 else {
1578- len_a = Py_SIZE (a );
1579- len_b = Py_SIZE (b );
1580- min_len = Py_MIN (len_a , len_b );
1577+ Py_ssize_t len_a = Py_SIZE (a );
1578+ Py_ssize_t len_b = Py_SIZE (b );
1579+ Py_ssize_t min_len = Py_MIN (len_a , len_b );
1580+ int c ;
15811581 if (min_len > 0 ) {
15821582 c = Py_CHARMASK (* a -> ob_sval ) - Py_CHARMASK (* b -> ob_sval );
15831583 if (c == 0 )
15841584 c = memcmp (a -> ob_sval , b -> ob_sval , min_len );
15851585 }
1586- else
1586+ else {
15871587 c = 0 ;
1588- if (c != 0 )
1588+ }
1589+ if (c != 0 ) {
15891590 Py_RETURN_RICHCOMPARE (c , 0 , op );
1591+ }
15901592 Py_RETURN_RICHCOMPARE (len_a , len_b , op );
15911593 }
15921594}
15931595
15941596static Py_hash_t
1595- bytes_hash (PyBytesObject * a )
1597+ bytes_hash (PyObject * self )
15961598{
1599+ PyBytesObject * a = _PyBytes_CAST (self );
15971600_Py_COMP_DIAG_PUSH
15981601_Py_COMP_DIAG_IGNORE_DEPR_DECLS
15991602 if (a -> ob_shash == -1 ) {
@@ -1605,8 +1608,9 @@ _Py_COMP_DIAG_POP
16051608}
16061609
16071610static PyObject *
1608- bytes_subscript (PyBytesObject * self , PyObject * item )
1611+ bytes_subscript (PyObject * op , PyObject * item )
16091612{
1613+ PyBytesObject * self = _PyBytes_CAST (op );
16101614 if (_PyIndex_Check (item )) {
16111615 Py_ssize_t i = PyNumber_AsSsize_t (item , PyExc_IndexError );
16121616 if (i == -1 && PyErr_Occurred ())
@@ -1670,31 +1674,32 @@ bytes_subscript(PyBytesObject* self, PyObject* item)
16701674}
16711675
16721676static int
1673- bytes_buffer_getbuffer (PyBytesObject * self , Py_buffer * view , int flags )
1677+ bytes_buffer_getbuffer (PyObject * op , Py_buffer * view , int flags )
16741678{
1679+ PyBytesObject * self = _PyBytes_CAST (op );
16751680 return PyBuffer_FillInfo (view , (PyObject * )self , (void * )self -> ob_sval , Py_SIZE (self ),
16761681 1 , flags );
16771682}
16781683
16791684static PySequenceMethods bytes_as_sequence = {
1680- ( lenfunc ) bytes_length , /*sq_length*/
1681- ( binaryfunc ) bytes_concat , /*sq_concat*/
1682- ( ssizeargfunc ) bytes_repeat , /*sq_repeat*/
1683- ( ssizeargfunc ) bytes_item , /*sq_item*/
1685+ bytes_length , /*sq_length*/
1686+ bytes_concat , /*sq_concat*/
1687+ bytes_repeat , /*sq_repeat*/
1688+ bytes_item , /*sq_item*/
16841689 0 , /*sq_slice*/
16851690 0 , /*sq_ass_item*/
16861691 0 , /*sq_ass_slice*/
1687- ( objobjproc ) bytes_contains /*sq_contains*/
1692+ bytes_contains /*sq_contains*/
16881693};
16891694
16901695static PyMappingMethods bytes_as_mapping = {
1691- ( lenfunc ) bytes_length ,
1692- ( binaryfunc ) bytes_subscript ,
1696+ bytes_length ,
1697+ bytes_subscript ,
16931698 0 ,
16941699};
16951700
16961701static PyBufferProcs bytes_as_buffer = {
1697- ( getbufferproc ) bytes_buffer_getbuffer ,
1702+ bytes_buffer_getbuffer ,
16981703 NULL ,
16991704};
17001705
@@ -3043,11 +3048,11 @@ PyTypeObject PyBytes_Type = {
30433048 0 , /* tp_getattr */
30443049 0 , /* tp_setattr */
30453050 0 , /* tp_as_async */
3046- ( reprfunc ) bytes_repr , /* tp_repr */
3051+ bytes_repr , /* tp_repr */
30473052 & bytes_as_number , /* tp_as_number */
30483053 & bytes_as_sequence , /* tp_as_sequence */
30493054 & bytes_as_mapping , /* tp_as_mapping */
3050- ( hashfunc ) bytes_hash , /* tp_hash */
3055+ bytes_hash , /* tp_hash */
30513056 0 , /* tp_call */
30523057 bytes_str , /* tp_str */
30533058 PyObject_GenericGetAttr , /* tp_getattro */
0 commit comments