mirror of
https://github.com/python/cpython.git
synced 2025-08-03 16:39:00 +00:00
If interning an instance of a string subclass, intern a real string object
with the same value instead. This ensures that a string (or string subclass) object's ob_sinterned pointer is always a str (or NULL), and that the dict of interned strings only has strs as keys.
This commit is contained in:
parent
af90b3e610
commit
111f60964e
2 changed files with 34 additions and 4 deletions
|
@ -1529,6 +1529,20 @@ def inherits():
|
|||
verify(s.lower().__class__ is str)
|
||||
verify(s.lower() == base)
|
||||
|
||||
s = madstring("x y")
|
||||
verify(intern(s).__class__ is str)
|
||||
verify(intern(s) is intern("x y"))
|
||||
verify(intern(s) == "x y")
|
||||
|
||||
i = intern("y x")
|
||||
s = madstring("y x")
|
||||
verify(intern(s).__class__ is str)
|
||||
verify(intern(s) is i)
|
||||
|
||||
s = madstring(i)
|
||||
verify(intern(s).__class__ is str)
|
||||
verify(intern(s) is i)
|
||||
|
||||
class madunicode(unicode):
|
||||
_rev = None
|
||||
def rev(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue