diff options
author | Travis Oliphant <oliphant@enthought.com> | 2006-09-18 20:50:10 +0000 |
---|---|---|
committer | Travis Oliphant <oliphant@enthought.com> | 2006-09-18 20:50:10 +0000 |
commit | ab1d154233006e561157ab8c89ab02aafb6c1997 (patch) | |
tree | 1a0effa2bc482fbc02e049f63a78bb549c549604 | |
parent | adb82edb90a53825b785b11f1e95f2bcda98e456 (diff) | |
download | numpy-ab1d154233006e561157ab8c89ab02aafb6c1997.tar.gz |
Fix copyswap for VOID arrays when src is NULL
-rw-r--r-- | numpy/core/src/arraytypes.inc.src | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/numpy/core/src/arraytypes.inc.src b/numpy/core/src/arraytypes.inc.src index 47527c43e..0ebeff7b3 100644 --- a/numpy/core/src/arraytypes.inc.src +++ b/numpy/core/src/arraytypes.inc.src @@ -1234,9 +1234,13 @@ VOID_copyswapn (char *dst, intp dstride, char *src, intp sstride, descr = arr->descr; while (PyDict_Next(descr->fields, &pos, &key, &value)) { if (!PyArg_ParseTuple(value, "Oi|O", &new, &offset, - &title)) {arr->descr=descr;return;} + &title)) { + arr->descr=descr;return; + } arr->descr = new; - new->f->copyswapn(dst+offset, dstride, src+offset, sstride, n, swap, arr); + new->f->copyswapn(dst+offset, dstride, + (src != NULL ? src+offset : NULL), + sstride, n, swap, arr); } arr->descr = descr; return; @@ -1258,9 +1262,13 @@ VOID_copyswap (char *dst, char *src, int swap, PyArrayObject *arr) descr = arr->descr; /* Save it */ while (PyDict_Next(descr->fields, &pos, &key, &value)) { if (!PyArg_ParseTuple(value, "Oi|O", &new, &offset, - &title)) {arr->descr=descr;return;} + &title)) { + arr->descr=descr;return; + } arr->descr = new; - new->f->copyswap(dst+offset, src+offset, swap, arr); + new->f->copyswap(dst+offset, + (src != NULL ? src+offset : NULL), + swap, arr); } arr->descr = descr; return; |