summaryrefslogtreecommitdiffstats
path: root/Objects
diff options
context:
space:
mode:
authorBenjamin Peterson <benjamin@python.org>2013-01-09 15:52:01 (GMT)
committerBenjamin Peterson <benjamin@python.org>2013-01-09 15:52:01 (GMT)
commit0c270a8bb748f09b7de6f6ce21d405e0c83be329 (patch)
treea8b6e4c9160dd5ca34c2d7707c6530c3a7f68461 /Objects
parent7131749959e674ae347e34efabdc6291b21cbe43 (diff)
downloadcpython-0c270a8bb748f09b7de6f6ce21d405e0c83be329.zip
cpython-0c270a8bb748f09b7de6f6ce21d405e0c83be329.tar.gz
cpython-0c270a8bb748f09b7de6f6ce21d405e0c83be329.tar.bz2
correct static string clearing loop (closes #16906)
Diffstat (limited to 'Objects')
-rw-r--r--Objects/unicodeobject.c15
1 files changed, 9 insertions, 6 deletions
diff --git a/Objects/unicodeobject.c b/Objects/unicodeobject.c
index b4fc004..16d5929 100644
--- a/Objects/unicodeobject.c
+++ b/Objects/unicodeobject.c
@@ -1826,12 +1826,15 @@ _PyUnicode_FromId(_Py_Identifier *id)
void
_PyUnicode_ClearStaticStrings()
{
- _Py_Identifier *i;
- for (i = static_strings; i; i = i->next) {
- Py_DECREF(i->object);
- i->object = NULL;
- i->next = NULL;
- }
+ _Py_Identifier *tmp, *s = static_strings;
+ while (s) {
+ Py_DECREF(s->object);
+ s->object = NULL;
+ tmp = s->next;
+ s->next = NULL;
+ s = tmp;
+ }
+ static_strings = NULL;
}
/* Internal function, doesn't check maximum character */