summaryrefslogtreecommitdiff
path: root/Cython/Compiler/MemoryView.py
diff options
context:
space:
mode:
Diffstat (limited to 'Cython/Compiler/MemoryView.py')
-rw-r--r--Cython/Compiler/MemoryView.py11
1 files changed, 11 insertions, 0 deletions
diff --git a/Cython/Compiler/MemoryView.py b/Cython/Compiler/MemoryView.py
index e5de2abb7..d04eeaf00 100644
--- a/Cython/Compiler/MemoryView.py
+++ b/Cython/Compiler/MemoryView.py
@@ -447,6 +447,17 @@ def copy_broadcast_memview_src_to_dst(src, dst, code):
dst.type.dtype.is_pyobject),
dst.pos))
+def assign_scalar(dst, scalar, code):
+ "Assign a scalar to a slice. Both nodes must be temps."
+ verify_direct_dimensions(dst)
+ dtype = scalar.type
+ assert scalar.type.same_as(dst.type.dtype)
+
+ t = (dst.result(), dst.type.ndim,
+ dtype.declaration_code(""), scalar.result(), dtype.is_pyobject)
+ code.putln("__pyx_memoryview_slice_assign_scalar("
+ "&%s, %d, sizeof(%s), &%s, %d);" % t)
+
def copy_c_or_fortran_cname(memview):
if memview.is_c_contig:
c_or_f = 'c'