| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent e59e89a commit cf32ef1
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -1088,16 +1088,17 @@ PyArray_Choose(PyArrayObject *ip, PyObject *op, PyArrayObject *out, | |||
| 1088 | 1088 | break; | |
| 1089 | 1089 | } | |
| 1090 | 1090 | } | |
| 1091 | - if (cast_info.func != NULL) { | ||
| 1091 | + if (cast_info.func == NULL) { | ||
| 1092 | + /* We ensure memory doesn't overlap, so can use memcpy */ | ||
| 1093 | + memcpy(ret_data, PyArray_MultiIter_DATA(multi, mi), elsize); | ||
| 1094 | + } | ||
| 1095 | + else { | ||
| 1092 | 1096 | char *args[2] = {PyArray_MultiIter_DATA(multi, mi), ret_data}; | |
| 1093 | 1097 | if (cast_info.func(&cast_info.context, args, &one, | |
| 1094 | 1098 | transfer_strides, cast_info.auxdata) < 0) { | |
| 1095 | 1099 | goto fail; | |
| 1096 | 1100 | } | |
| 1097 | 1101 | } | |
| 1098 | - else { | ||
| 1099 | - memmove(ret_data, PyArray_MultiIter_DATA(multi, mi), elsize); | ||
| 1100 | - } | ||
| 1101 | 1102 | ret_data += elsize; | |
| 1102 | 1103 | PyArray_MultiIter_NEXT(multi); | |
| 1103 | 1104 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments