[pypy-svn] pypy 32ptr-on-64bit: Fix test_mapdict.
arigo
commits-noreply at bitbucket.org
Thu Mar 24 09:07:26 CET 2011
Author: Armin Rigo <arigo at tunes.org>
Branch: 32ptr-on-64bit
Changeset: r42888:6dfb0dd2e503
Date: 2011-03-22 17:32 +0100
http://bitbucket.org/pypy/pypy/changeset/6dfb0dd2e503/
Log: Fix test_mapdict.
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
@@ -1,6 +1,7 @@
import weakref
from pypy.rlib import jit, objectmodel, debug
from pypy.rlib.rarithmetic import intmask, r_uint
+from pypy.rlib import rerased
from pypy.interpreter.baseobjspace import W_Root
from pypy.objspace.std.dictmultiobject import W_DictMultiObject
@@ -515,11 +516,9 @@
nmin1 = n - 1
rangenmin1 = unroll.unrolling_iterable(range(nmin1))
if use_erased:
- from pypy.rlib import rerased
- erase = rerased.erase
- unerase = rerased.unerase
+ erase = erase_item
+ unerase = unerase_item
else:
- rerased = None # don't use in that case
erase = lambda x: x
unerase = lambda x, t: x
#
@@ -548,12 +547,11 @@
if index < nmin1:
for i in rangenmin1:
if index == i:
- erased = getattr(self, "_value%s" % i)
- return unerase_item(erased)
+ return getattr(self, "_value%s" % i)
if self._has_storage_list():
return self._mapdict_get_storage_list()[index - nmin1]
erased = getattr(self, "_value%s" % nmin1)
- return unerase_item(erased)
+ return unerase(erased)
def _mapdict_write_storage(self, index, value):
for i in rangenmin1:
@@ -563,7 +561,7 @@
if self._has_storage_list():
self._mapdict_get_storage_list()[index - nmin1] = value
return
- erased = erase_item(value)
+ erased = erase(value)
setattr(self, "_value%s" % nmin1, erased)
def _mapdict_storage_length(self):
@@ -583,14 +581,14 @@
has_storage_list = self._has_storage_list()
if len_storage < n:
assert not has_storage_list
- erased = erase_item(None)
+ erased = erase(None)
elif len_storage == n:
assert not has_storage_list
- erased = erase_item(storage[nmin1])
+ erased = erase(storage[nmin1])
elif not has_storage_list:
# storage is longer than self.map.length() only due to
# overallocation
- erased = erase_item(storage[nmin1])
+ erased = erase(storage[nmin1])
# in theory, we should be ultra-paranoid and check all entries,
# but checking just one should catch most problems anyway:
assert storage[n] is None
More information about the Pypy-commit
mailing list