[pypy-commit] pypy rdict-experiments-3: (fijal, arigo)

arigo noreply at buildbot.pypy.org
Wed Oct 9 19:27:34 CEST 2013


Author: Armin Rigo <arigo at tunes.org>
Branch: rdict-experiments-3
Changeset: r67258:f0f77aef2ee3
Date: 2013-10-09 19:26 +0200
http://bitbucket.org/pypy/pypy/changeset/f0f77aef2ee3/

Log:	(fijal, arigo) More RPythonification

diff --git a/rpython/rtyper/lltypesystem/rdict.py b/rpython/rtyper/lltypesystem/rdict.py
--- a/rpython/rtyper/lltypesystem/rdict.py
+++ b/rpython/rtyper/lltypesystem/rdict.py
@@ -448,12 +448,12 @@
 def ll_valid_from_key(entries, i):
     ENTRIES = lltype.typeOf(entries).TO
     dummy = ENTRIES.dummy_obj.ll_dummy_value
-    return entries.everused(i) and entries[i].key != dummy
+    return entries[i].key != dummy
 
 def ll_valid_from_value(entries, i):
     ENTRIES = lltype.typeOf(entries).TO
     dummy = ENTRIES.dummy_obj.ll_dummy_value
-    return entries.everused(i) and entries[i].value != dummy
+    return entries[i].value != dummy
 
 def ll_mark_deleted_in_flag(entries, i):
     entries[i].f_valid = False
diff --git a/rpython/rtyper/test/test_rdict.py b/rpython/rtyper/test/test_rdict.py
--- a/rpython/rtyper/test/test_rdict.py
+++ b/rpython/rtyper/test/test_rdict.py
@@ -39,12 +39,17 @@
     return c
 
 class TestRDictDirect(object):
+    dummykeyobj = None
+    dummyvalueobj = None
+
     def _get_str_dict(self):
         # STR -> lltype.Signed
         DICT = rdict.get_ll_dict(lltype.Ptr(rstr.STR), lltype.Signed,
                                  ll_fasthash_function=rstr.LLHelpers.ll_strhash,
                                  ll_hash_function=rstr.LLHelpers.ll_strhash,
-                                 ll_eq_function=rstr.LLHelpers.ll_streq)
+                                 ll_eq_function=rstr.LLHelpers.ll_streq,
+                                 dummykeyobj=self.dummykeyobj,
+                                 dummyvalueobj=self.dummyvalueobj)
         return DICT
 
     def test_dict_creation(self):
@@ -172,6 +177,16 @@
             for k in foreach_index(ll_d):
                 assert k < rdict.VALID_OFFSET
 
+
+class TestRDictDirectDummyKey(TestRDictDirect):
+    class dummykeyobj:
+        ll_dummy_value = llstr("dupa")
+
+class TestRDictDirectDummyValue(TestRDictDirect):
+    class dummyvalueobj:
+        ll_dummy_value = -42
+
+
 class TestRdict(BaseRtypingTest):
 
     def test_dict_creation(self):


More information about the pypy-commit mailing list