[pypy-commit] pypy default: we need nonneg here

fijal noreply at buildbot.pypy.org
Fri Feb 22 11:46:39 CET 2013


Author: Maciej Fijalkowski <fijall at gmail.com>
Branch: 
Changeset: r61592:8752e5648e16
Date: 2013-02-22 12:34 +0200
http://bitbucket.org/pypy/pypy/changeset/8752e5648e16/

Log:	we need nonneg here

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
@@ -8,6 +8,7 @@
 from rpython.rlib.rarithmetic import r_uint, intmask, LONG_BIT
 from rpython.rtyper import rmodel
 from rpython.rtyper.error import TyperError
+from rpython.annotator.model import SomeInteger
 
 
 HIGHEST_BIT = intmask(1 << (LONG_BIT - 1))
@@ -385,39 +386,39 @@
 #  be direct_call'ed from rtyped flow graphs, which means that they will
 #  get flowed and annotated, mostly with SomePtr.
 
- at objectmodel.enforceargs(None, int)
+ at objectmodel.enforceargs(None, SomeInteger(nonneg=True))
 def ll_everused_from_flag(entries, i):
     return entries[i].f_everused
 
- at objectmodel.enforceargs(None, int)
+ at objectmodel.enforceargs(None, SomeInteger(nonneg=True))
 def ll_everused_from_key(entries, i):
     return bool(entries[i].key)
 
- at objectmodel.enforceargs(None, int)
+ at objectmodel.enforceargs(None, SomeInteger(nonneg=True))
 def ll_everused_from_value(entries, i):
     return bool(entries[i].value)
 
- at objectmodel.enforceargs(None, int)
+ at objectmodel.enforceargs(None, SomeInteger(nonneg=True))
 def ll_valid_from_flag(entries, i):
     return entries[i].f_valid
 
- at objectmodel.enforceargs(None, int)
+ at objectmodel.enforceargs(None, SomeInteger(nonneg=True))
 def ll_mark_deleted_in_flag(entries, i):
     entries[i].f_valid = False
 
- at objectmodel.enforceargs(None, int)
+ at objectmodel.enforceargs(None, SomeInteger(nonneg=True))
 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
 
- at objectmodel.enforceargs(None, int)
+ at objectmodel.enforceargs(None, SomeInteger(nonneg=True))
 def ll_mark_deleted_in_key(entries, i):
     ENTRIES = lltype.typeOf(entries).TO
     dummy = ENTRIES.dummy_obj.ll_dummy_value
     entries[i].key = dummy
 
- at objectmodel.enforceargs(None, int)
+ at objectmodel.enforceargs(None, SomeInteger(nonneg=True))
 def ll_valid_from_value(entries, i):
     ENTRIES = lltype.typeOf(entries).TO
     dummy = ENTRIES.dummy_obj.ll_dummy_value
@@ -585,6 +586,7 @@
     direct_compare = not hasattr(ENTRIES, 'no_direct_compare')
     mask = len(entries) - 1
     i = hash & mask
+    assert i >= 0
     # do the first try before any looping
     if entries.valid(i):
         checkingkey = entries[i].key


More information about the pypy-commit mailing list