Issue #8914: fix various warnings from the Clang static analyzer v254.
diff --git a/Objects/weakrefobject.c b/Objects/weakrefobject.c
index 13323cf..dfaa1b9 100644
--- a/Objects/weakrefobject.c
+++ b/Objects/weakrefobject.c
@@ -168,13 +168,20 @@
PyErr_Clear();
else if (PyUnicode_Check(nameobj))
name = _PyUnicode_AsString(nameobj);
- PyOS_snprintf(buffer, sizeof(buffer),
- name ? "<weakref at %p; to '%.50s' at %p (%s)>"
- : "<weakref at %p; to '%.50s' at %p>",
- self,
- Py_TYPE(PyWeakref_GET_OBJECT(self))->tp_name,
- PyWeakref_GET_OBJECT(self),
- name);
+ if (name)
+ PyOS_snprintf(buffer, sizeof(buffer),
+ "<weakref at %p; to '%.50s' at %p (%s)>",
+ self,
+ Py_TYPE(PyWeakref_GET_OBJECT(self))->tp_name,
+ PyWeakref_GET_OBJECT(self),
+ name);
+ else
+ PyOS_snprintf(buffer, sizeof(buffer),
+ "<weakref at %p; to '%.50s' at %p>",
+ self,
+ Py_TYPE(PyWeakref_GET_OBJECT(self))->tp_name,
+ PyWeakref_GET_OBJECT(self));
+
Py_XDECREF(nameobj);
}
return PyUnicode_FromString(buffer);