Author: Maciej Fijalkowski <[email protected]> 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. [email protected](None, int) [email protected](None, SomeInteger(nonneg=True)) def ll_everused_from_flag(entries, i): return entries[i].f_everused [email protected](None, int) [email protected](None, SomeInteger(nonneg=True)) def ll_everused_from_key(entries, i): return bool(entries[i].key) [email protected](None, int) [email protected](None, SomeInteger(nonneg=True)) def ll_everused_from_value(entries, i): return bool(entries[i].value) [email protected](None, int) [email protected](None, SomeInteger(nonneg=True)) def ll_valid_from_flag(entries, i): return entries[i].f_valid [email protected](None, int) [email protected](None, SomeInteger(nonneg=True)) def ll_mark_deleted_in_flag(entries, i): entries[i].f_valid = False [email protected](None, int) [email protected](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 [email protected](None, int) [email protected](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 [email protected](None, int) [email protected](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 _______________________________________________ pypy-commit mailing list [email protected] http://mail.python.org/mailman/listinfo/pypy-commit
