_PyUnicode_Fini(): Initialize the local freelist walking variable `u'
after unicode_empty has been freed, otherwise it might not point to
the real start of the unicode_freelist.  Final closure for SF bug
#110681, Jitterbug PR#398.
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index 8d04b2d..b31675b 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -5223,11 +5223,12 @@
 void
 _PyUnicode_Fini(void)
 {
-    PyUnicodeObject *u = unicode_freelist;
+    PyUnicodeObject *u;
 
     Py_XDECREF(unicode_empty);
     unicode_empty = NULL;
-    while (u != NULL) {
+
+    for (u = unicode_freelist; u != NULL;) {
 	PyUnicodeObject *v = u;
 	u = *(PyUnicodeObject **)u;
 	if (v->str)