diff options
author | Mark Florisson <markflorisson88@gmail.com> | 2012-01-18 21:10:03 +0000 |
---|---|---|
committer | Mark Florisson <markflorisson88@gmail.com> | 2012-01-22 19:04:21 +0000 |
commit | 3738c6a8f99302aac838221474ef5e67fa01f469 (patch) | |
tree | 36951ed915c0d52ecac6ad0575bedbcb3cdccfc9 /Cython/Compiler/MemoryView.py | |
parent | 3693a7b877b6aa97fd4e7587592bc8ad84438576 (diff) | |
download | cython-3738c6a8f99302aac838221474ef5e67fa01f469.tar.gz |
Support scalar slice assignment
Diffstat (limited to 'Cython/Compiler/MemoryView.py')
-rw-r--r-- | Cython/Compiler/MemoryView.py | 11 |
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' |