@@ -175,17 +175,11 @@ struct dequeobject {
175175
176176static inline block *
177177newblock (dequeobject * deque ) {
178- block * b ;
179178 if (deque -> numfreeblocks ) {
180179 deque -> numfreeblocks -- ;
181180 return deque -> freeblocks [deque -> numfreeblocks ];
182181 }
183- b = PyMem_Malloc (sizeof (block ));
184- if (b != NULL ) {
185- return b ;
186- }
187- PyErr_NoMemory ();
188- return NULL ;
182+ return PyMem_Malloc (sizeof (block ));
189183}
190184
191185static inline void
@@ -212,6 +206,7 @@ deque_new(PyTypeObject *type, PyObject *args, PyObject *kwds)
212206
213207 b = newblock (deque );
214208 if (b == NULL ) {
209+ PyErr_NoMemory ();
215210 Py_DECREF (deque );
216211 return NULL ;
217212 }
@@ -343,6 +338,7 @@ deque_append_lock_held(dequeobject *deque, PyObject *item, Py_ssize_t maxlen)
343338 if (deque -> rightindex == BLOCKLEN - 1 ) {
344339 block * b = newblock (deque );
345340 if (b == NULL ) {
341+ PyErr_NoMemory ();
346342 Py_DECREF (item );
347343 return -1 ;
348344 }
@@ -392,6 +388,7 @@ deque_appendleft_lock_held(dequeobject *deque, PyObject *item,
392388 if (deque -> leftindex == 0 ) {
393389 block * b = newblock (deque );
394390 if (b == NULL ) {
391+ PyErr_NoMemory ();
395392 Py_DECREF (item );
396393 return -1 ;
397394 }
@@ -744,9 +741,7 @@ deque_clear(PyObject *self)
744741 adversary could cause it to never terminate).
745742 */
746743
747- PyObject * old_exc = PyErr_GetRaisedException ();
748744 b = newblock (deque );
749- PyErr_SetRaisedException (old_exc );
750745 if (b == NULL ) {
751746 goto alternate_method ;
752747 }
@@ -858,6 +853,7 @@ deque_inplace_repeat_impl(dequeobject *deque, Py_ssize_t n)
858853 if (deque -> rightindex == BLOCKLEN - 1 ) {
859854 block * b = newblock (deque );
860855 if (b == NULL ) {
856+ PyErr_NoMemory ();
861857 Py_SET_SIZE (deque , Py_SIZE (deque ) + i );
862858 return NULL ;
863859 }
@@ -978,8 +974,10 @@ _deque_rotate(dequeobject *deque, Py_ssize_t n)
978974 if (leftindex == 0 ) {
979975 if (b == NULL ) {
980976 b = newblock (deque );
981- if (b == NULL )
977+ if (b == NULL ) {
978+ PyErr_NoMemory ();
982979 goto done ;
980+ }
983981 }
984982 b -> rightlink = leftblock ;
985983 CHECK_END (leftblock -> leftlink );
@@ -1022,8 +1020,10 @@ _deque_rotate(dequeobject *deque, Py_ssize_t n)
10221020 if (rightindex == BLOCKLEN - 1 ) {
10231021 if (b == NULL ) {
10241022 b = newblock (deque );
1025- if (b == NULL )
1023+ if (b == NULL ) {
1024+ PyErr_NoMemory ();
10261025 goto done ;
1026+ }
10271027 }
10281028 b -> leftlink = rightblock ;
10291029 CHECK_END (rightblock -> rightlink );
0 commit comments