correct static string clearing loop (closes #16906)

This commit is contained in:
Benjamin Peterson 2013-01-09 09:52:01 -06:00
parent 7131749959
commit 0c270a8bb7
2 changed files with 11 additions and 5 deletions

View File

@ -12,6 +12,9 @@ What's New in Python 3.3.1?
Core and Builtins Core and Builtins
----------------- -----------------
- Issue #16906: Fix a logic error that prevented most static strings from being
cleared.
- Issue #11461: Fix the incremental UTF-16 decoder. Original patch by - Issue #11461: Fix the incremental UTF-16 decoder. Original patch by
Amaury Forgeot d'Arc. Amaury Forgeot d'Arc.

View File

@ -1826,12 +1826,15 @@ _PyUnicode_FromId(_Py_Identifier *id)
void void
_PyUnicode_ClearStaticStrings() _PyUnicode_ClearStaticStrings()
{ {
_Py_Identifier *i; _Py_Identifier *tmp, *s = static_strings;
for (i = static_strings; i; i = i->next) { while (s) {
Py_DECREF(i->object); Py_DECREF(s->object);
i->object = NULL; s->object = NULL;
i->next = NULL; tmp = s->next;
s->next = NULL;
s = tmp;
} }
static_strings = NULL;
} }
/* Internal function, doesn't check maximum character */ /* Internal function, doesn't check maximum character */