fix possible if unlikely leak
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index d13c547..c4cfe1b 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -8888,9 +8888,13 @@
/* create entries for translating chars in x to those in y */
for (i = 0; i < PyUnicode_GET_SIZE(x); i++) {
key = PyLong_FromLong(PyUnicode_AS_UNICODE(x)[i]);
- value = PyLong_FromLong(PyUnicode_AS_UNICODE(y)[i]);
- if (!key || !value)
+ if (!key)
goto err;
+ value = PyLong_FromLong(PyUnicode_AS_UNICODE(y)[i]);
+ if (!value) {
+ Py_DECREF(key);
+ goto err;
+ }
res = PyDict_SetItem(new, key, value);
Py_DECREF(key);
Py_DECREF(value);