Issue #26200: Restored more safe usages of Py_SETREF.
diff --git a/Modules/_decimal/_decimal.c b/Modules/_decimal/_decimal.c
index 0c02d28..3c2ad85 100644
--- a/Modules/_decimal/_decimal.c
+++ b/Modules/_decimal/_decimal.c
@@ -3439,14 +3439,14 @@
goto error;
}
- Py_XSETREF(exponent, long_methods->nb_power(tmp, exponent, Py_None));
+ Py_SETREF(exponent, long_methods->nb_power(tmp, exponent, Py_None));
Py_DECREF(tmp);
if (exponent == NULL) {
goto error;
}
if (exp >= 0) {
- Py_XSETREF(numerator, long_methods->nb_multiply(numerator, exponent));
+ Py_SETREF(numerator, long_methods->nb_multiply(numerator, exponent));
if (numerator == NULL) {
goto error;
}
@@ -3462,8 +3462,8 @@
if (tmp == NULL) {
goto error;
}
- Py_XSETREF(numerator, long_methods->nb_floor_divide(numerator, tmp));
- Py_XSETREF(denominator, long_methods->nb_floor_divide(denominator, tmp));
+ Py_SETREF(numerator, long_methods->nb_floor_divide(numerator, tmp));
+ Py_SETREF(denominator, long_methods->nb_floor_divide(denominator, tmp));
Py_DECREF(tmp);
if (numerator == NULL || denominator == NULL) {
goto error;
diff --git a/Modules/_functoolsmodule.c b/Modules/_functoolsmodule.c
index 6205708..1aa4571 100644
--- a/Modules/_functoolsmodule.c
+++ b/Modules/_functoolsmodule.c
@@ -294,9 +294,9 @@
else
Py_INCREF(dict);
- Py_XSETREF(pto->fn, fn);
- Py_XSETREF(pto->args, fnargs);
- Py_XSETREF(pto->kw, kw);
+ Py_SETREF(pto->fn, fn);
+ Py_SETREF(pto->args, fnargs);
+ Py_SETREF(pto->kw, kw);
Py_XSETREF(pto->dict, dict);
Py_RETURN_NONE;
}
diff --git a/Objects/floatobject.c b/Objects/floatobject.c
index 32a0de1..eb60659 100644
--- a/Objects/floatobject.c
+++ b/Objects/floatobject.c
@@ -1494,13 +1494,13 @@
/* fold in 2**exponent */
if (exponent > 0) {
- Py_XSETREF(numerator,
+ Py_SETREF(numerator,
long_methods->nb_lshift(numerator, py_exponent));
if (numerator == NULL)
goto error;
}
else {
- Py_XSETREF(denominator,
+ Py_SETREF(denominator,
long_methods->nb_lshift(denominator, py_exponent));
if (denominator == NULL)
goto error;