]> granicus.if.org Git - python/commitdiff
SF #926075: Fixed the bug that returns a wrong pattern object for
authorHye-Shik Chang <hyeshik@gmail.com>
Tue, 20 Apr 2004 21:11:11 +0000 (21:11 +0000)
committerHye-Shik Chang <hyeshik@gmail.com>
Tue, 20 Apr 2004 21:11:11 +0000 (21:11 +0000)
a string or unicode object in sre.compile() when a different type
pattern with the same value exists.

Lib/sre.py
Misc/NEWS

index ffe2bc36e6439320c5cbc2ee691910f9e8a21750..0ff70dc1082b663c8c4034f3e7945f44714c743d 100644 (file)
@@ -215,7 +215,8 @@ def _join(seq, sep):
 
 def _compile(*key):
     # internal: compile pattern
-    p = _cache.get(key)
+    cachekey = (type(key[0]),) + key
+    p = _cache.get(cachekey)
     if p is not None:
         return p
     pattern, flags = key
@@ -229,7 +230,7 @@ def _compile(*key):
         raise error, v # invalid expression
     if len(_cache) >= _MAXCACHE:
         _cache.clear()
-    _cache[key] = p
+    _cache[cachekey] = p
     return p
 
 def _compile_repl(*key):
index 2fb60230c21b18510d71db54076fa35cd4bfbef2..b7133165031869eb48a974422229dde07b24a3e5 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -303,6 +303,10 @@ Extension modules
 Library
 -------
 
+- Bug #926075: Fixed a bug that returns a wrong pattern object
+  for a string or unicode object in sre.compile() when a different
+  type pattern with the same value exists.
+
 - Added countcallers arg to trace.Trace class (--trackcalls command line arg
   when run from the command prompt).