diff --git a/Misc/NEWS b/Misc/NEWS index 08bd0924d7e..a8da635cacf 100644 --- a/Misc/NEWS +++ b/Misc/NEWS @@ -12,6 +12,8 @@ What's new in Python 3.0b1? Core and Builtins ----------------- +- Issue #2963: fix merging oversight that disabled method cache for all types. + - Issue #2964: fix a missing INCREF in instancemethod_descr_get. - Issue 2895: Don't crash when given bytes objects as keyword names. diff --git a/Objects/typeobject.c b/Objects/typeobject.c index 8880cabcc11..88ce67f70d4 100644 --- a/Objects/typeobject.c +++ b/Objects/typeobject.c @@ -20,10 +20,10 @@ >> (8*sizeof(unsigned int) - MCACHE_SIZE_EXP)) #define MCACHE_HASH_METHOD(type, name) \ MCACHE_HASH((type)->tp_version_tag, \ - ((PyStringObject *)(name))->ob_shash) + ((PyUnicodeObject *)(name))->hash) #define MCACHE_CACHEABLE_NAME(name) \ - PyString_CheckExact(name) && \ - PyString_GET_SIZE(name) <= MCACHE_MAX_ATTR_SIZE + PyUnicode_CheckExact(name) && \ + PyUnicode_GET_SIZE(name) <= MCACHE_MAX_ATTR_SIZE struct method_cache_entry { unsigned int version;