cpython/Objects
Tim Peters 0ab085c4cb Changed the dict implementation to take "string shortcuts" only when
keys are true strings -- no subclasses need apply.  This may be debatable.

The problem is that a str subclass may very well want to override __eq__
and/or __hash__ (see the new example of case-insensitive strings in
test_descr), but go-fast shortcuts for strings are ubiquitous in our dicts
(and subclass overrides aren't even looked for then).  Another go-fast
reason for the change is that PyCheck_StringExact() is a quicker test
than PyCheck_String(), and we make such a test on virtually every access
to every dict.

OTOH, a str subclass may also be perfectly happy using the base str eq
and hash, and this change slows them a lot.  But those cases are still
hypothetical, while Python's own reliance on true-string dicts is not.
2001-09-14 00:25:33 +00:00
..
.cvsignore Ignore a bunch of generated files. 2000-05-02 18:34:30 +00:00
abstract.c Fix tortured comment -- I must be on drugs today. 2001-09-10 23:53:53 +00:00
bufferobject.c repr's converted to using PyString_FromFormat() instead of sprintf'ing 2001-08-24 18:34:26 +00:00
cellobject.c Use new GC API. 2001-08-29 23:54:21 +00:00
classobject.c Generalize operator.indexOf (PySequence_Index) to work with any 2001-09-08 04:00:12 +00:00
cobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00
complexobject.c Again perhaps the end of [#460020] bug or feature: unicode() and subclasses. 2001-09-12 19:12:49 +00:00
descrobject.c Rename 'getset' to 'property'. 2001-09-06 21:56:42 +00:00
dictobject.c Changed the dict implementation to take "string shortcuts" only when 2001-09-14 00:25:33 +00:00
fileobject.c Get rid of builtin_open() entirely (the C code and docstring, not the 2001-09-13 21:49:44 +00:00
floatobject.c Again perhaps the end of [#460020] bug or feature: unicode() and subclasses. 2001-09-12 19:12:49 +00:00
frameobject.c Squash new compiler wng in debug build. 2001-08-30 00:32:51 +00:00
funcobject.c Use new GC API. 2001-08-29 23:54:21 +00:00
intobject.c More bug 460020. When I is a subclass of int, disable the +I(whatever), 2001-09-11 21:44:14 +00:00
iterobject.c Patch #427190: Implement and use METH_NOARGS and METH_O. 2001-08-16 13:15:00 +00:00
listobject.c Give the internal immutable list type .extend and .pop methods (they 2001-08-30 06:15:32 +00:00
longobject.c based upon a suggestion in c.l.py, this slight expansion of the 2001-09-13 19:05:30 +00:00
methodobject.c Removed some unreachable break statements to silence SGI compiler. 2001-08-30 13:58:58 +00:00
moduleobject.c Use new GC API. 2001-08-29 23:54:21 +00:00
object.c More on SF bug [#460020] bug or feature: unicode() and subclasses. 2001-09-11 01:41:59 +00:00
obmalloc.c Identifiers matching _[A-Z_]\w* are reserved for C implementations. 2001-03-11 18:36:13 +00:00
rangeobject.c repr's converted to using PyString_FromFormat() instead of sprintf'ing 2001-08-24 18:34:26 +00:00
sliceobject.c Merge of descr-branch back into trunk. 2001-08-02 04:15:00 +00:00
stringobject.c If interning an instance of a string subclass, intern a real string object 2001-09-12 07:54:51 +00:00
tupleobject.c The endless 460020 bug. 2001-09-11 19:48:03 +00:00
typeobject.c type_call(): Change in policy. The keyword args (if any) are now passed 2001-09-13 19:18:27 +00:00
unicodectype.c removed "register const" from scalar arguments to the unicode 2001-06-27 22:08:26 +00:00
unicodeobject.c str_subtype_new, unicode_subtype_new: 2001-09-12 05:18:58 +00:00
unicodetype_db.h forgot to check in the new makeunicodedata.py script 2001-01-21 17:01:31 +00:00
xxobject.c REMOVED all CWI, CNRI and BeOpen copyright markings. 2000-09-01 23:29:29 +00:00