Author: l.diekmann
Branch: type-specialized-instances
Changeset: r50312:e481a093e056
Date: 2011-12-08 16:35 +0000
http://bitbucket.org/pypy/pypy/changeset/e481a093e056/

Log:    fixes for type-specialized-attributes

diff --git a/pypy/objspace/std/mapdict.py b/pypy/objspace/std/mapdict.py
--- a/pypy/objspace/std/mapdict.py
+++ b/pypy/objspace/std/mapdict.py
@@ -134,7 +134,7 @@
 
     @jit.elidable
     def _get_new_attr(self, name, index, attrclass):
-        key = name, index, attrclass
+        key = name, index, attrclass.key_for_attr_cache
         cache = self.cache_attrs
         if cache is None:
             cache = self.cache_attrs = {}
@@ -334,6 +334,7 @@
         return "<PlainAttribute %s %s %r>" % (self.selector, self.position, 
self.back)
 
 class PlainAttribute(AbstractStoredAttribute):
+    key_for_attr_cache = 0
 
     erase_item, unerase_item = rerased.new_erasing_pair("mapdict storage 
object item")
     erase_item = staticmethod(erase_item)
@@ -349,6 +350,7 @@
         obj._mapdict_write_storage(self.position, erased)
 
 class IntAttribute(AbstractStoredAttribute):
+    key_for_attr_cache = 1
 
     erase_item, unerase_item = rerased.erase_int, rerased.unerase_int
     erase_item = staticmethod(erase_item)
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to