{
Py_ssize_t m = Py_SIZE(self);
Py_ssize_t n = PySet_GET_SIZE(other);
- if (list_resize(self, m + n) < 0) {
+ Py_ssize_t r = m + n;
+ if (r == 0) {
+ return 0;
+ }
+ if (list_resize(self, r) < 0) {
return -1;
}
+
+ assert(self->ob_item != NULL);
/* populate the end of self with iterable's items */
Py_ssize_t setpos = 0;
Py_hash_t hash;
FT_ATOMIC_STORE_PTR_RELEASE(*dest, key);
dest++;
}
- Py_SET_SIZE(self, m + n);
+ Py_SET_SIZE(self, r);
return 0;
}
// which_item: 0 for keys and 1 for values
Py_ssize_t m = Py_SIZE(self);
Py_ssize_t n = PyDict_GET_SIZE(dict);
- if (list_resize(self, m + n) < 0) {
+ Py_ssize_t r = m + n;
+ if (r == 0) {
+ return 0;
+ }
+ if (list_resize(self, r) < 0) {
return -1;
}
+ assert(self->ob_item != NULL);
PyObject **dest = self->ob_item + m;
Py_ssize_t pos = 0;
PyObject *keyvalue[2];
dest++;
}
- Py_SET_SIZE(self, m + n);
+ Py_SET_SIZE(self, r);
return 0;
}
{
Py_ssize_t m = Py_SIZE(self);
Py_ssize_t n = PyDict_GET_SIZE(dict);
- if (list_resize(self, m + n) < 0) {
+ Py_ssize_t r = m + n;
+ if (r == 0) {
+ return 0;
+ }
+ if (list_resize(self, r) < 0) {
return -1;
}
+ assert(self->ob_item != NULL);
PyObject **dest = self->ob_item + m;
Py_ssize_t pos = 0;
Py_ssize_t i = 0;
i++;
}
- Py_SET_SIZE(self, m + n);
+ Py_SET_SIZE(self, r);
return 0;
}