Issue #6012: Add cleanup support to O& argument parsing.
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 3bd1efd..47e0933 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1539,6 +1539,10 @@
PyObject *output = NULL;
Py_ssize_t size;
void *data;
+ if (arg == NULL) {
+ Py_DECREF(*(PyObject**)addr);
+ return 1;
+ }
if (PyBytes_Check(arg) || PyByteArray_Check(arg)) {
output = arg;
Py_INCREF(output);
@@ -1573,7 +1577,7 @@
return 0;
}
*(PyObject**)addr = output;
- return 1;
+ return Py_CLEANUP_SUPPORTED;
}