Skip to content

Commit b8b54c7

Browse files
Fix Py_REFCNT > 1
1 parent 86079c4 commit b8b54c7

File tree

4 files changed

+8
-8
lines changed

4 files changed

+8
-8
lines changed

Modules/itertoolsmodule.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2129,7 +2129,7 @@ product_next_lock_held(PyObject *op)
21292129
Py_ssize_t *indices = lz->indices;
21302130

21312131
/* Copy the previous result tuple or re-use it if available */
2132-
if (Py_REFCNT(result) > 1) {
2132+
if (!_PyObject_IsUniquelyReferenced(result)) {
21332133
PyObject *old_result = result;
21342134
result = PyTuple_FromArray(_PyTuple_ITEMS(old_result), npools);
21352135
if (result == NULL)
@@ -2364,7 +2364,7 @@ combinations_next_lock_held(PyObject *op)
23642364
}
23652365
} else {
23662366
/* Copy the previous result tuple or re-use it if available */
2367-
if (Py_REFCNT(result) > 1) {
2367+
if (!_PyObject_IsUniquelyReferenced(result)) {
23682368
PyObject *old_result = result;
23692369
result = PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
23702370
if (result == NULL)
@@ -2618,7 +2618,7 @@ cwr_next(PyObject *op)
26182618
}
26192619
} else {
26202620
/* Copy the previous result tuple or re-use it if available */
2621-
if (Py_REFCNT(result) > 1) {
2621+
if (!_PyObject_IsUniquelyReferenced(result)) {
26222622
PyObject *old_result = result;
26232623
result = PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
26242624
if (result == NULL)
@@ -2879,7 +2879,7 @@ permutations_next(PyObject *op)
28792879
goto empty;
28802880

28812881
/* Copy the previous result tuple or re-use it if available */
2882-
if (Py_REFCNT(result) > 1) {
2882+
if (!_PyObject_IsUniquelyReferenced(result)) {
28832883
PyObject *old_result = result;
28842884
result = PyTuple_FromArray(_PyTuple_ITEMS(old_result), r);
28852885
if (result == NULL)

Objects/bytesobject.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3256,7 +3256,7 @@ _PyBytes_Resize(PyObject **pv, Py_ssize_t newsize)
32563256
Py_DECREF(v);
32573257
return 0;
32583258
}
3259-
if (Py_REFCNT(v) != 1) {
3259+
if (!_PyObject_IsUniquelyReferenced(v)) {
32603260
if (oldsize < newsize) {
32613261
*pv = _PyBytes_FromSize(newsize, 0);
32623262
if (*pv) {

Objects/setobject.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2774,7 +2774,7 @@ int
27742774
PySet_Add(PyObject *anyset, PyObject *key)
27752775
{
27762776
if (!PySet_Check(anyset) &&
2777-
(!PyFrozenSet_Check(anyset) || Py_REFCNT(anyset) != 1)) {
2777+
(!PyFrozenSet_Check(anyset) || !_PyObject_IsUniquelyReferenced(anyset))) {
27782778
PyErr_BadInternalCall();
27792779
return -1;
27802780
}

Objects/tupleobject.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ int
118118
PyTuple_SetItem(PyObject *op, Py_ssize_t i, PyObject *newitem)
119119
{
120120
PyObject **p;
121-
if (!PyTuple_Check(op) || Py_REFCNT(op) != 1) {
121+
if (!PyTuple_Check(op) || !_PyObject_IsUniquelyReferenced(op)) {
122122
Py_XDECREF(newitem);
123123
PyErr_BadInternalCall();
124124
return -1;
@@ -923,7 +923,7 @@ _PyTuple_Resize(PyObject **pv, Py_ssize_t newsize)
923923

924924
v = (PyTupleObject *) *pv;
925925
if (v == NULL || !Py_IS_TYPE(v, &PyTuple_Type) ||
926-
(Py_SIZE(v) != 0 && Py_REFCNT(v) != 1)) {
926+
(Py_SIZE(v) != 0 && !_PyObject_IsUniquelyReferenced(v))) {
927927
*pv = 0;
928928
Py_XDECREF(v);
929929
PyErr_BadInternalCall();

0 commit comments

Comments
 (0)