From: Georg Brandl Date: Sun, 25 May 2008 09:32:09 +0000 (+0000) Subject: #2963: fix method cache types. X-Git-Tag: v3.0b1~259 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=1bcf35ae39a7db66666b001252886d82c755110b;p=python #2963: fix method cache types. --- diff --git a/Misc/NEWS b/Misc/NEWS index 08bd0924d7..a8da635cac 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 8880cabcc1..88ce67f70d 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;