8000 simplify & add a comment · python/cpython@d8b389b · GitHub
[go: up one dir, main page]

Skip to content

Commit d8b389b

Browse files
committed
simplify & add a comment
1 parent 853afa2 commit d8b389b

File tree

1 file changed

+4
-4
lines changed

1 file changed

+4
-4
lines changed

Modules/_pickle.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -910,12 +910,12 @@ PyMemoTable_Set(PyMemoTable *self, PyObject *key, Py_ssize_t value)
910910
* Very large memo tables (over 50K items) use doubling instead.
911911
* This may help applications with severe memory constraints.
912912
*/
913-
size_t triple_used = self->mt_used * 3;
914-
if (triple_used > self->mt_used && triple_used < self->mt_allocated * 2) {
913+
if (SIZE_MAX / 3 >= self->mt_used && self->mt_used * 3 < self->mt_allocated * 2) {
915914
return 0;
916915
}
917-
return _PyMemoTable_ResizeTable(self,
918-
(self->mt_used > 50000 ? 2 : 4) * self->mt_used);
916+
// self->mt_used is always < PY_SSIZE_T_MAX, so this can't overflow.
917+
size_t desired_size = (self->mt_used > 50000 ? 2 : 4) * self->mt_used;
918+
return _PyMemoTable_ResizeTable(self, desired_size);
919919
}
920920

921921
#undef MT_MINSIZE

0 commit comments

Comments
 (0)
0