Author: Alex Gaynor <[email protected]>
Branch:
Changeset: r46035:18b8d8ab3f7b
Date: 2011-07-27 22:46 -0700
http://bitbucket.org/pypy/pypy/changeset/18b8d8ab3f7b/
Log: Move the memcpy function to rffi.py.
diff --git a/pypy/module/array/interp_array.py
b/pypy/module/array/interp_array.py
--- a/pypy/module/array/interp_array.py
+++ b/pypy/module/array/interp_array.py
@@ -14,8 +14,6 @@
from pypy.rpython.lltypesystem import lltype, rffi
-memcpy = rffi.llexternal("memcpy", [rffi.VOIDP, rffi.VOIDP, rffi.SIZE_T],
lltype.Void)
-
@unwrap_spec(typecode=str)
def w_array(space, w_cls, typecode, __args__):
if len(__args__.arguments_w) > 1:
@@ -617,7 +615,7 @@
def array_copy__Array(space, self):
w_a = mytype.w_class(self.space)
w_a.setlen(self.len)
- memcpy(
+ rffi.c_memcpy(
rffi.cast(rffi.VOIDP, w_a.buffer),
rffi.cast(rffi.VOIDP, self.buffer),
self.len * mytype.bytes
diff --git a/pypy/rpython/lltypesystem/rffi.py
b/pypy/rpython/lltypesystem/rffi.py
--- a/pypy/rpython/lltypesystem/rffi.py
+++ b/pypy/rpython/lltypesystem/rffi.py
@@ -1061,3 +1061,11 @@
keep_unicodebuffer_alive_until_here(self.raw, self.gc_buf)
def str(self, length):
return unicode_from_buffer(self.raw, self.gc_buf, self.size, length)
+
+# You would have to have a *huge* amount of data for this to block long enough
+# to be worth it to release the GIL.
+c_memcpy = llexternal("memcpy",
+ [VOIDP, VOIDP, SIZE_T],
+ lltype.Void,
+ threadsafe=False
+)
\ No newline at end of file
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit