summaryrefslogtreecommitdiff
path: root/numpy
diff options
context:
space:
mode:
authorCharles Harris <charlesr.harris@gmail.com>2011-03-05 14:55:13 -0700
committerCharles Harris <charlesr.harris@gmail.com>2011-03-05 14:55:13 -0700
commit9eee670c62d539b0f9027d2c989073e2ee81103b (patch)
tree27c638b81a4779fa00a9f9d6f850a14dabe2def5 /numpy
parent5aa65d942a6d2d93ecac069e3d2d69a7d9ff0271 (diff)
downloadnumpy-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.c4
-rw-r--r--numpy/core/src/multiarray/lowlevel_strided_loops.c.src8
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;
}