Author: Carl Friedrich Bolz-Tereick <cfb...@gmx.de>
Branch: rdict-fast-hash
Changeset: r93369:abf782e86675
Date: 2017-12-11 18:22 +0100
http://bitbucket.org/pypy/pypy/changeset/abf782e86675/

Log:    fix iter*_with_hash

diff --git a/rpython/rtyper/rdict.py b/rpython/rtyper/rdict.py
--- a/rpython/rtyper/rdict.py
+++ b/rpython/rtyper/rdict.py
@@ -90,7 +90,7 @@
                               resulttype=ENTRIES)
         # call the correct variant_*() method
         method = getattr(self, 'variant_' + self.variant)
-        return method(hop, ENTRIES, v_entries, v_index)
+        return method(hop, ENTRIES, v_entries, v_dict, v_index)
 
     def get_tuple_result(self, hop, items_v):
         # this allocates the tuple for the result, directly in the function
@@ -110,7 +110,7 @@
             hop.genop('setfield', [v_result, c_item, v_item])
         return v_result
 
-    def variant_keys(self, hop, ENTRIES, v_entries, v_index):
+    def variant_keys(self, hop, ENTRIES, v_entries, v_dict, v_index):
         KEY = ENTRIES.TO.OF.key
         c_key = hop.inputconst(lltype.Void, 'key')
         v_key = hop.genop('getinteriorfield', [v_entries, v_index, c_key],
@@ -119,30 +119,30 @@
 
     variant_reversed = variant_keys
 
-    def variant_values(self, hop, ENTRIES, v_entries, v_index):
+    def variant_values(self, hop, ENTRIES, v_entries, v_dict, v_index):
         VALUE = ENTRIES.TO.OF.value
         c_value = hop.inputconst(lltype.Void, 'value')
         v_value = hop.genop('getinteriorfield', [v_entries,v_index,c_value],
                             resulttype=VALUE)
         return self.r_dict.recast_value(hop.llops, v_value)
 
-    def variant_items(self, hop, ENTRIES, v_entries, v_index):
-        v_key = self.variant_keys(hop, ENTRIES, v_entries, v_index)
-        v_value = self.variant_values(hop, ENTRIES, v_entries, v_index)
+    def variant_items(self, hop, ENTRIES, v_entries, v_dict, v_index):
+        v_key = self.variant_keys(hop, ENTRIES, v_entries, v_dict, v_index)
+        v_value = self.variant_values(hop, ENTRIES, v_entries, v_dict, v_index)
         return self.get_tuple_result(hop, (v_key, v_value))
 
-    def variant_hashes(self, hop, ENTRIES, v_entries, v_index):
+    def variant_hashes(self, hop, ENTRIES, v_entries, v_dict, v_index):
         # there is not really a variant 'hashes', but this method is
         # convenient for the following variants
-        return hop.gendirectcall(ENTRIES.TO.hash, v_entries, v_index)
+        return hop.gendirectcall(ENTRIES.TO.entry_hash, v_entries, v_dict, 
v_index)
 
-    def variant_keys_with_hash(self, hop, ENTRIES, v_entries, v_index):
-        v_key = self.variant_keys(hop, ENTRIES, v_entries, v_index)
-        v_hash = self.variant_hashes(hop, ENTRIES, v_entries, v_index)
+    def variant_keys_with_hash(self, hop, ENTRIES, v_entries, v_dict, v_index):
+        v_key = self.variant_keys(hop, ENTRIES, v_entries, v_dict, v_index)
+        v_hash = self.variant_hashes(hop, ENTRIES, v_entries, v_dict, v_index)
         return self.get_tuple_result(hop, (v_key, v_hash))
 
-    def variant_items_with_hash(self, hop, ENTRIES, v_entries, v_index):
-        v_key = self.variant_keys(hop, ENTRIES, v_entries, v_index)
-        v_value = self.variant_values(hop, ENTRIES, v_entries, v_index)
-        v_hash = self.variant_hashes(hop, ENTRIES, v_entries, v_index)
+    def variant_items_with_hash(self, hop, ENTRIES, v_entries, v_dict, 
v_index):
+        v_key = self.variant_keys(hop, ENTRIES, v_entries, v_dict, v_index)
+        v_value = self.variant_values(hop, ENTRIES, v_entries, v_dict, v_index)
+        v_hash = self.variant_hashes(hop, ENTRIES, v_entries, v_dict, v_index)
         return self.get_tuple_result(hop, (v_key, v_value, v_hash))
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to