@@ -461,7 +461,7 @@ Pdata_New(void)
461461
462462 if (!(self = PyObject_New (Pdata , & Pdata_Type )))
463463 return NULL ;
464- Py_SIZE (self ) = 0 ;
464+ Py_SET_SIZE (self , 0 ) ;
465465 self -> mark_set = 0 ;
466466 self -> fence = 0 ;
467467 self -> allocated = 8 ;
@@ -488,7 +488,7 @@ Pdata_clear(Pdata *self, Py_ssize_t clearto)
488488 while (-- i >= clearto ) {
489489 Py_CLEAR (self -> data [i ]);
490490 }
491- Py_SIZE (self ) = clearto ;
491+ Py_SET_SIZE (self , clearto ) ;
492492 return 0 ;
493493}
494494
@@ -539,7 +539,8 @@ Pdata_pop(Pdata *self)
539539 Pdata_stack_underflow (self );
540540 return NULL ;
541541 }
542- return self -> data [-- Py_SIZE (self )];
542+ Py_SET_SIZE (self , Py_SIZE (self ) - 1 );
543+ return self -> data [Py_SIZE (self )];
543544}
544545#define PDATA_POP (D , V ) do { (V) = Pdata_pop((D)); } while (0)
545546
@@ -549,7 +550,8 @@ Pdata_push(Pdata *self, PyObject *obj)
549550 if (Py_SIZE (self ) == self -> allocated && Pdata_grow (self ) < 0 ) {
550551 return -1 ;
551552 }
552- self -> data [Py_SIZE (self )++ ] = obj ;
553+ self -> data [Py_SIZE (self )] = obj ;
554+ Py_SET_SIZE (self , Py_SIZE (self ) + 1 );
553555 return 0 ;
554556}
555557
@@ -579,7 +581,7 @@ Pdata_poptuple(Pdata *self, Py_ssize_t start)
579581 for (i = start , j = 0 ; j < len ; i ++ , j ++ )
580582 PyTuple_SET_ITEM (tuple , j , self -> data [i ]);
581583
582- Py_SIZE (self ) = start ;
584+ Py_SET_SIZE (self , start ) ;
583585 return tuple ;
584586}
585587
@@ -596,7 +598,7 @@ Pdata_poplist(Pdata *self, Py_ssize_t start)
596598 for (i = start , j = 0 ; j < len ; i ++ , j ++ )
597599 PyList_SET_ITEM (list , j , self -> data [i ]);
598600
599- Py_SIZE (self ) = start ;
601+ Py_SET_SIZE (self , start ) ;
600602 return list ;
601603}
602604
@@ -6134,7 +6136,7 @@ load_pop(UnpicklerObject *self)
61346136 else {
61356137 len -- ;
61366138 Py_DECREF (self -> stack -> data [len ]);
6137- Py_SIZE (self -> stack ) = len ;
6139+ Py_SET_SIZE (self -> stack , len ) ;
61386140 }
61396141 return 0 ;
61406142}
@@ -6495,13 +6497,13 @@ do_append(UnpicklerObject *self, Py_ssize_t x)
64956497 result = _Pickle_FastCall (append_func , value );
64966498 if (result == NULL ) {
64976499 Pdata_clear (self -> stack , i + 1 );
6498- Py_SIZE (self -> stack ) = x ;
6500+ Py_SET_SIZE (self -> stack , x ) ;
64996501 Py_DECREF (append_func );
65006502 return -1 ;
65016503 }
65026504 Py_DECREF (result );
65036505 }
6504- Py_SIZE (self -> stack ) = x ;
6506+ Py_SET_SIZE (self -> stack , x ) ;
65056507 Py_DECREF (append_func );
65066508 }
65076509 }
@@ -6623,12 +6625,12 @@ load_additems(UnpicklerObject *self)
66236625 result = _Pickle_FastCall (add_func , item );
66246626 if (result == NULL ) {
66256627 Pdata_clear (self -> stack , i + 1 );
6626- Py_SIZE (self -> stack ) = mark ;
6628+ Py_SET_SIZE (self -> stack , mark ) ;
66276629 return -1 ;
66286630 }
66296631 Py_DECREF (result );
66306632 }
6631- Py_SIZE (self -> stack ) = mark ;
6633+ Py_SET_SIZE (self -> stack , mark ) ;
66326634 }
66336635
66346636 return 0 ;
0 commit comments