[pypy-commit] pypy default: With the new logic, we can remove this ovfcheck().
arigo
noreply at buildbot.pypy.org
Tue Aug 2 11:25:08 CEST 2011
Author: Armin Rigo <arigo at tunes.org>
Branch:
Changeset: r46184:09eb9345b7c2
Date: 2011-08-01 21:40 +0200
http://bitbucket.org/pypy/pypy/changeset/09eb9345b7c2/
Log: With the new logic, we can remove this ovfcheck().
diff --git a/pypy/rpython/lltypesystem/rlist.py b/pypy/rpython/lltypesystem/rlist.py
--- a/pypy/rpython/lltypesystem/rlist.py
+++ b/pypy/rpython/lltypesystem/rlist.py
@@ -14,7 +14,6 @@
from pypy.rpython.lltypesystem import rstr
from pypy.rpython import robject
from pypy.rlib.debug import ll_assert
-from pypy.rlib.rarithmetic import ovfcheck
from pypy.rpython.lltypesystem import rffi
from pypy.rpython.lltypesystem.lloperation import llop
from pypy.rlib import rgc
@@ -200,12 +199,11 @@
else:
some = 6
some += newsize >> 3
- try:
- new_allocated = ovfcheck(newsize + some)
- except OverflowError:
- raise MemoryError
+ new_allocated = newsize + some
# new_allocated is a bit more than newsize, enough to ensure an amortized
- # linear complexity for e.g. repeated usage of l.append().
+ # linear complexity for e.g. repeated usage of l.append(). In case
+ # it overflows sys.maxint, it is guaranteed negative, and the following
+ # malloc() will fail.
items = l.items
newitems = malloc(typeOf(l).TO.items.TO, new_allocated)
before_len = l.length
More information about the pypy-commit
mailing list