Author: Alex Gaynor <[email protected]>
Branch:
Changeset: r68423:d9b57c97270d
Date: 2013-12-13 12:56 -0800
http://bitbucket.org/pypy/pypy/changeset/d9b57c97270d/
Log: Make setslice on ffi.buffer(...) faster by using memcpy
diff --git a/pypy/module/_cffi_backend/cbuffer.py
b/pypy/module/_cffi_backend/cbuffer.py
--- a/pypy/module/_cffi_backend/cbuffer.py
+++ b/pypy/module/_cffi_backend/cbuffer.py
@@ -5,7 +5,9 @@
from pypy.interpreter.typedef import TypeDef, make_weakref_descr
from pypy.module._cffi_backend import cdataobj, ctypeptr, ctypearray
+from rpython.rtyper.annlowlevel import llstr
from rpython.rtyper.lltypesystem import rffi
+from rpython.rtyper.lltypesystem.rstr import copy_string_to_raw
class LLBuffer(RWBuffer):
@@ -34,8 +36,7 @@
def setslice(self, start, string):
raw_cdata = rffi.ptradd(self.raw_cdata, start)
- for i in range(len(string)):
- raw_cdata[i] = string[i]
+ copy_string_to_raw(llstr(string), raw_cdata, 0, len(string))
class MiniBuffer(W_Root):
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit