From 1bcf35ae39a7db66666b001252886d82c755110b Mon Sep 17 00:00:00 2001 From: Georg Brandl Date: Sun, 25 May 2008 09:32:09 +0000 Subject: #2963: fix method cache types. --- Misc/NEWS | 2 ++ Objects/typeobject.c | 6 +++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/Misc/NEWS b/Misc/NEWS index 08bd092..a8da635 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 8880cab..88ce67f 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; -- cgit v0.12