|
| 1 | +From: Anthony Sottile <asottile@umich.edu> |
| 2 | +Date: Fri, 29 Mar 2019 14:32:49 -0700 |
| 3 | +Subject: Use C89 for loops in backported pickle patch |
| 4 | + |
| 5 | +--- |
| 6 | + Modules/_pickle.c | 11 +++++++---- |
| 7 | + 1 file changed, 7 insertions(+), 4 deletions(-) |
| 8 | + |
| 9 | +diff --git a/Modules/_pickle.c b/Modules/_pickle.c |
| 10 | +index fcb9e87..3b4003f 100644 |
| 11 | +--- a/Modules/_pickle.c |
| 12 | ++++ b/Modules/_pickle.c |
| 13 | +@@ -658,6 +658,7 @@ PyMemoTable_New(void) |
| 14 | + static PyMemoTable * |
| 15 | + PyMemoTable_Copy(PyMemoTable *self) |
| 16 | + { |
| 17 | ++ size_t i; |
| 18 | + PyMemoTable *new = PyMemoTable_New(); |
| 19 | + if (new == NULL) |
| 20 | + return NULL; |
| 21 | +@@ -674,7 +675,7 @@ PyMemoTable_Copy(PyMemoTable *self) |
| 22 | + PyErr_NoMemory(); |
| 23 | + return NULL; |
| 24 | + } |
| 25 | +- for (size_t i = 0; i < self->mt_allocated; i++) { |
| 26 | ++ for (i = 0; i < self->mt_allocated; i++) { |
| 27 | + Py_XINCREF(self->mt_table[i].me_key); |
| 28 | + } |
| 29 | + memcpy(new->mt_table, self->mt_table, |
| 30 | +@@ -4198,13 +4199,14 @@ static PyObject * |
| 31 | + _pickle_PicklerMemoProxy_copy_impl(PicklerMemoProxyObject *self) |
| 32 | + /*[clinic end generated code: output=bb83a919d29225ef input=b73043485ac30b36]*/ |
| 33 | + { |
| 34 | ++ size_t i; |
| 35 | + PyMemoTable *memo; |
| 36 | + PyObject *new_memo = PyDict_New(); |
| 37 | + if (new_memo == NULL) |
| 38 | + return NULL; |
| 39 | + |
| 40 | + memo = self->pickler->memo; |
| 41 | +- for (size_t i = 0; i < memo->mt_allocated; ++i) { |
| 42 | ++ for (i = 0; i < memo->mt_allocated; ++i) { |
| 43 | + PyMemoEntry entry = memo->mt_table[i]; |
| 44 | + if (entry.me_key != NULL) { |
| 45 | + int status; |
| 46 | +@@ -6773,6 +6775,7 @@ Unpickler_get_memo(UnpicklerObject *self) |
| 47 | + static int |
| 48 | + Unpickler_set_memo(UnpicklerObject *self, PyObject *obj) |
| 49 | + { |
| 50 | ++ size_t i; |
| 51 | + PyObject **new_memo; |
| 52 | + size_t new_memo_size = 0; |
| 53 | + |
| 54 | +@@ -6791,7 +6794,7 @@ Unpickler_set_memo(UnpicklerObject *self, PyObject *obj) |
| 55 | + if (new_memo == NULL) |
| 56 | + return -1; |
| 57 | + |
| 58 | +- for (size_t i = 0; i < new_memo_size; i++) { |
| 59 | ++ for (i = 0; i < new_memo_size; i++) { |
| 60 | + Py_XINCREF(unpickler->memo[i]); |
| 61 | + new_memo[i] = unpickler->memo[i]; |
| 62 | + } |
| 63 | +@@ -6839,7 +6842,7 @@ Unpickler_set_memo(UnpicklerObject *self, PyObject *obj) |
| 64 | + |
| 65 | + error: |
| 66 | + if (new_memo_size) { |
| 67 | +- for (size_t i = new_memo_size - 1; i != SIZE_MAX; i--) { |
| 68 | ++ for (i = new_memo_size - 1; i != SIZE_MAX; i--) { |
| 69 | + Py_XDECREF(new_memo[i]); |
| 70 | + } |
| 71 | + PyMem_FREE(new_memo); |
0 commit comments