summaryrefslogtreecommitdiff
path: root/Lib/_strptime.py
diff options
context:
space:
mode:
authorBrett Cannon <bcannon@gmail.com>2005-09-15 02:34:56 +0000
committerBrett Cannon <bcannon@gmail.com>2005-09-15 02:34:56 +0000
commitea51c7e3635f3eddaf7d474133d3137503291895 (patch)
tree5406ab045f90aca1ada8826301ab3dfa831ff9c1 /Lib/_strptime.py
parent5147c36c1ac1f8954e32f309c0eba0c327d1d72d (diff)
downloadcpython-ea51c7e3635f3eddaf7d474133d3137503291895.tar.gz
Clear out the regex cache when the TimeRE cache is invalidated by a locale
change. Fixes bug #1290505.
Diffstat (limited to 'Lib/_strptime.py')
-rw-r--r--Lib/_strptime.py3
1 files changed, 2 insertions, 1 deletions
diff --git a/Lib/_strptime.py b/Lib/_strptime.py
index 90928ffca8..08d79603a0 100644
--- a/Lib/_strptime.py
+++ b/Lib/_strptime.py
@@ -275,13 +275,14 @@ _regex_cache = {}
def strptime(data_string, format="%a %b %d %H:%M:%S %Y"):
"""Return a time struct based on the input string and the format string."""
- global _TimeRE_cache
+ global _TimeRE_cache, _regex_cache
_cache_lock.acquire()
try:
time_re = _TimeRE_cache
locale_time = time_re.locale_time
if _getlang() != locale_time.lang:
_TimeRE_cache = TimeRE()
+ _regex_cache = {}
if len(_regex_cache) > _CACHE_MAX_SIZE:
_regex_cache.clear()
format_regex = _regex_cache.get(format)