[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