Author: Amaury Forgeot d'Arc <[email protected]>
Branch: decimal-libmpdec
Changeset: r73037:bf6ff9de8a11
Date: 2014-05-25 18:40 +0200
http://bitbucket.org/pypy/pypy/changeset/bf6ff9de8a11/
Log: The "zero" parameter of lltype.malloc() is checked to be constant.
This constraint has to be propagated up to scoped_alloc(), to
generate specialized versions.
diff --git a/rpython/rtyper/lltypesystem/lltype.py
b/rpython/rtyper/lltypesystem/lltype.py
--- a/rpython/rtyper/lltypesystem/lltype.py
+++ b/rpython/rtyper/lltypesystem/lltype.py
@@ -2002,9 +2002,9 @@
if track_allocation:
leakfinder.remember_free(p._obj0)
-def _make_scoped_allocator(T):
+def _make_scoped_allocator(T, zero):
class ScopedAlloc:
- def __init__(self, n=None, zero=False):
+ def __init__(self, n=None):
if n is None:
self.buf = malloc(T, flavor='raw', zero=zero)
else:
@@ -2028,8 +2028,8 @@
...use array...
...it's freed now.
"""
- return _make_scoped_allocator(T)(n=n, zero=zero)
-scoped_alloc._annspecialcase_ = 'specialize:arg(0)'
+ return _make_scoped_allocator(T, zero)(n=n)
+scoped_alloc._annspecialcase_ = 'specialize:arg(0, 2)'
def functionptr(TYPE, name, **attrs):
if not isinstance(TYPE, FuncType):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit