diff options
author | Charles Harris <charlesr.harris@gmail.com> | 2011-03-05 14:55:13 -0700 |
---|---|---|
committer | Charles Harris <charlesr.harris@gmail.com> | 2011-03-05 14:55:13 -0700 |
commit | 9eee670c62d539b0f9027d2c989073e2ee81103b (patch) | |
tree | 27c638b81a4779fa00a9f9d6f850a14dabe2def5 /numpy | |
parent | 5aa65d942a6d2d93ecac069e3d2d69a7d9ff0271 (diff) | |
download | numpy-9eee670c62d539b0f9027d2c989073e2ee81103b.tar.gz |
BUG: Fix error in _strided_to_contig. Fixes ticket #1756.
Diffstat (limited to 'numpy')
-rw-r--r-- | numpy/core/src/multiarray/dtype_transfer.c | 4 | ||||
-rw-r--r-- | numpy/core/src/multiarray/lowlevel_strided_loops.c.src | 8 |
2 files changed, 7 insertions, 5 deletions
diff --git a/numpy/core/src/multiarray/dtype_transfer.c b/numpy/core/src/multiarray/dtype_transfer.c index 80b5b2a64..ee0ec720d 100644 --- a/numpy/core/src/multiarray/dtype_transfer.c +++ b/numpy/core/src/multiarray/dtype_transfer.c @@ -2950,7 +2950,8 @@ PyArray_GetDTypeTransferFunction(int aligned, } /* Check for different-sized strings, unicodes, or voids */ - if (src_type_num == dst_type_num) switch (src_type_num) { + if (src_type_num == dst_type_num) { + switch (src_type_num) { case NPY_STRING: case NPY_UNICODE: case NPY_VOID: @@ -2958,6 +2959,7 @@ PyArray_GetDTypeTransferFunction(int aligned, src_stride, dst_stride, src_dtype->elsize, dst_dtype->elsize, out_stransfer, out_transferdata); + } } /* Otherwise a cast is necessary */ diff --git a/numpy/core/src/multiarray/lowlevel_strided_loops.c.src b/numpy/core/src/multiarray/lowlevel_strided_loops.c.src index d4e020113..c5f408d81 100644 --- a/numpy/core/src/multiarray/lowlevel_strided_loops.c.src +++ b/numpy/core/src/multiarray/lowlevel_strided_loops.c.src @@ -302,14 +302,14 @@ _swap_pair_strided_to_strided(char *dst, npy_intp dst_stride, } static void -_strided_to_contig(char *dst, npy_intp NPY_UNUSED(dst_stride), +_strided_to_contig(char *dst, npy_intp dst_stride, char *src, npy_intp src_stride, - npy_intp N, npy_intp src_itemsize, + npy_intp N, npy_intp NPY_UNUSED(src_itemsize), void *NPY_UNUSED(data)) { while (N > 0) { - memcpy(dst, src, src_itemsize); - dst += src_itemsize; + memcpy(dst, src, dst_stride); + dst += dst_stride; src += src_stride; --N; } |