diff options
author | Benjamin Peterson <benjamin@python.org> | 2015-06-27 19:18:23 (GMT) |
---|---|---|
committer | Benjamin Peterson <benjamin@python.org> | 2015-06-27 19:18:23 (GMT) |
commit | 7763c68dcd8ac6fa3e7d24197ea1fae614eaacb2 (patch) | |
tree | 293955f950ea96ad0428c24f14037621c1d318db /Modules | |
parent | a7c781724f32bbc659894e5e1ee9f7f18d1252c6 (diff) | |
parent | ff0f322edbb200c1dadd287c3355a5bc006d7fa6 (diff) | |
download | cpython-7763c68dcd8ac6fa3e7d24197ea1fae614eaacb2.zip cpython-7763c68dcd8ac6fa3e7d24197ea1fae614eaacb2.tar.gz cpython-7763c68dcd8ac6fa3e7d24197ea1fae614eaacb2.tar.bz2 |
merge 3.4
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/_pickle.c | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/Modules/_pickle.c b/Modules/_pickle.c index 78a4b15..2d66f00 100644 --- a/Modules/_pickle.c +++ b/Modules/_pickle.c @@ -439,9 +439,7 @@ Pdata_grow(Pdata *self) if (new_allocated > (size_t)PY_SSIZE_T_MAX - allocated) goto nomemory; new_allocated += allocated; - if (new_allocated > ((size_t)PY_SSIZE_T_MAX / sizeof(PyObject *))) - goto nomemory; - data = PyMem_REALLOC(data, new_allocated * sizeof(PyObject *)); + PyMem_RESIZE(data, PyObject *, new_allocated); if (data == NULL) goto nomemory; @@ -671,7 +669,7 @@ PyMemoTable_Copy(PyMemoTable *self) /* The table we get from _New() is probably smaller than we wanted. Free it and allocate one that's the right size. */ PyMem_FREE(new->mt_table); - new->mt_table = PyMem_MALLOC(self->mt_allocated * sizeof(PyMemoEntry)); + new->mt_table = PyMem_NEW(PyMemoEntry, self->mt_allocated); if (new->mt_table == NULL) { PyMem_FREE(new); PyErr_NoMemory(); @@ -766,7 +764,7 @@ _PyMemoTable_ResizeTable(PyMemoTable *self, Py_ssize_t min_size) /* Allocate new table. */ oldtable = self->mt_table; - self->mt_table = PyMem_MALLOC(new_size * sizeof(PyMemoEntry)); + self->mt_table = PyMem_NEW(PyMemoEntry, new_size); if (self->mt_table == NULL) { self->mt_table = oldtable; PyErr_NoMemory(); @@ -1272,16 +1270,14 @@ static int _Unpickler_ResizeMemoList(UnpicklerObject *self, Py_ssize_t new_size) { Py_ssize_t i; - PyObject **memo; assert(new_size > self->memo_size); - memo = PyMem_REALLOC(self->memo, new_size * sizeof(PyObject *)); - if (memo == NULL) { + PyMem_RESIZE(self->memo, PyObject *, new_size); + if (self->memo == NULL) { PyErr_NoMemory(); return -1; } - self->memo = memo; for (i = self->memo_size; i < new_size; i++) self->memo[i] = NULL; self->memo_size = new_size; @@ -1325,7 +1321,7 @@ _Unpickler_MemoPut(UnpicklerObject *self, Py_ssize_t idx, PyObject *value) static PyObject ** _Unpickler_NewMemo(Py_ssize_t new_size) { - PyObject **memo = PyMem_MALLOC(new_size * sizeof(PyObject *)); + PyObject **memo = PyMem_NEW(PyObject *, new_size); if (memo == NULL) { PyErr_NoMemory(); return NULL; @@ -6032,7 +6028,6 @@ load_mark(UnpicklerObject *self) if ((self->num_marks + 1) >= self->marks_size) { size_t alloc; - Py_ssize_t *marks; /* Use the size_t type to check for overflow. */ alloc = ((size_t)self->num_marks << 1) + 20; @@ -6043,15 +6038,14 @@ load_mark(UnpicklerObject *self) } if (self->marks == NULL) - marks = (Py_ssize_t *) PyMem_Malloc(alloc * sizeof(Py_ssize_t)); + self->marks = PyMem_NEW(Py_ssize_t, alloc); else - marks = (Py_ssize_t *) PyMem_Realloc(self->marks, - alloc * sizeof(Py_ssize_t)); - if (marks == NULL) { + PyMem_RESIZE(self->marks, Py_ssize_t, alloc); + if (self->marks == NULL) { + self->marks_size = 0; PyErr_NoMemory(); return -1; } - self->marks = marks; self->marks_size = (Py_ssize_t)alloc; } |