@@ -428,9 +428,7 @@ Pdata_grow(Pdata *self)
428428 if (new_allocated > PY_SSIZE_T_MAX - allocated )
429429 goto nomemory ;
430430 new_allocated += allocated ;
431- if (new_allocated > (PY_SSIZE_T_MAX / sizeof (PyObject * )))
432- goto nomemory ;
433- data = PyMem_REALLOC (data , new_allocated * sizeof (PyObject * ));
431+ PyMem_RESIZE (data , PyObject * , new_allocated );
434432 if (data == NULL )
435433 goto nomemory ;
436434
@@ -660,7 +658,7 @@ PyMemoTable_Copy(PyMemoTable *self)
660658 /* The table we get from _New() is probably smaller than we wanted.
661659 Free it and allocate one that's the right size. */
662660 PyMem_FREE (new -> mt_table );
663- new -> mt_table = PyMem_MALLOC ( self -> mt_allocated * sizeof ( PyMemoEntry ) );
661+ new -> mt_table = PyMem_NEW ( PyMemoEntry , self -> mt_allocated );
664662 if (new -> mt_table == NULL ) {
665663 PyMem_FREE (new );
666664 PyErr_NoMemory ();
@@ -755,7 +753,7 @@ _PyMemoTable_ResizeTable(PyMemoTable *self, Py_ssize_t min_size)
755753
756754 /* Allocate new table. */
757755 oldtable = self -> mt_table ;
758- self -> mt_table = PyMem_MALLOC ( new_size * sizeof ( PyMemoEntry ) );
756+ self -> mt_table = PyMem_NEW ( PyMemoEntry , new_size );
759757 if (self -> mt_table == NULL ) {
760758 self -> mt_table = oldtable ;
761759 PyErr_NoMemory ();
@@ -1261,16 +1259,14 @@ static int
12611259_Unpickler_ResizeMemoList (UnpicklerObject * self , Py_ssize_t new_size )
12621260{
12631261 Py_ssize_t i ;
1264- PyObject * * memo ;
12651262
12661263 assert (new_size > self -> memo_size );
12671264
1268- memo = PyMem_REALLOC (self -> memo , new_size * sizeof ( PyObject * ) );
1269- if (memo == NULL ) {
1265+ PyMem_RESIZE (self -> memo , PyObject * , new_size );
1266+ if (self -> memo == NULL ) {
12701267 PyErr_NoMemory ();
12711268 return -1 ;
12721269 }
1273- self -> memo = memo ;
12741270 for (i = self -> memo_size ; i < new_size ; i ++ )
12751271 self -> memo [i ] = NULL ;
12761272 self -> memo_size = new_size ;
@@ -1314,7 +1310,7 @@ _Unpickler_MemoPut(UnpicklerObject *self, Py_ssize_t idx, PyObject *value)
13141310static PyObject * *
13151311_Unpickler_NewMemo (Py_ssize_t new_size )
13161312{
1317- PyObject * * memo = PyMem_MALLOC ( new_size * sizeof ( PyObject * ) );
1313+ PyObject * * memo = PyMem_NEW ( PyObject * , new_size );
13181314 if (memo == NULL ) {
13191315 PyErr_NoMemory ();
13201316 return NULL ;
@@ -5963,7 +5959,6 @@ load_mark(UnpicklerObject *self)
59635959
59645960 if ((self -> num_marks + 1 ) >= self -> marks_size ) {
59655961 size_t alloc ;
5966- Py_ssize_t * marks ;
59675962
59685963 /* Use the size_t type to check for overflow. */
59695964 alloc = ((size_t )self -> num_marks << 1 ) + 20 ;
@@ -5974,15 +5969,14 @@ load_mark(UnpicklerObject *self)
59745969 }
59755970
59765971 if (self -> marks == NULL )
5977- marks = (Py_ssize_t * ) PyMem_Malloc ( alloc * sizeof ( Py_ssize_t ) );
5972+ self -> marks = PyMem_NEW (Py_ssize_t , alloc );
59785973 else
5979- marks = ( Py_ssize_t * ) PyMem_Realloc ( self -> marks ,
5980- alloc * sizeof ( Py_ssize_t ));
5981- if ( marks == NULL ) {
5974+ PyMem_RESIZE ( self -> marks , Py_ssize_t , alloc );
5975+ if ( self -> marks == NULL ) {
5976+ self -> marks_size = 0 ;
59825977 PyErr_NoMemory ();
59835978 return -1 ;
59845979 }
5985- self -> marks = marks ;
59865980 self -> marks_size = (Py_ssize_t )alloc ;
59875981 }
59885982
0 commit comments