| 140 | |
| 141 | |
| 142 | static int |
| 143 | wrapping_method_get_loop( |
| 144 | PyArrayMethod_Context *context, |
| 145 | int aligned, int move_references, const npy_intp *strides, |
| 146 | PyArrayMethod_StridedLoop **out_loop, NpyAuxData **out_transferdata, |
| 147 | NPY_ARRAYMETHOD_FLAGS *flags) |
| 148 | { |
| 149 | assert(move_references == 0); /* only used internally for "decref" funcs */ |
| 150 | int nin = context->method->nin, nout = context->method->nout; |
| 151 | |
| 152 | wrapping_auxdata *auxdata = get_wrapping_auxdata(); |
| 153 | if (auxdata == NULL) { |
| 154 | return -1; |
| 155 | } |
| 156 | |
| 157 | auxdata->orig_context.method = context->method->wrapped_meth; |
| 158 | auxdata->orig_context.caller = context->caller; |
| 159 | |
| 160 | if (context->method->translate_given_descrs( |
| 161 | nin, nout, context->method->wrapped_dtypes, |
| 162 | context->descriptors, auxdata->orig_context.descriptors) < 0) { |
| 163 | NPY_AUXDATA_FREE((NpyAuxData *)auxdata); |
| 164 | return -1; |
| 165 | } |
| 166 | if (context->method->wrapped_meth->get_strided_loop( |
| 167 | &auxdata->orig_context, aligned, 0, strides, |
| 168 | &auxdata->orig_loop, &auxdata->orig_auxdata, |
| 169 | flags) < 0) { |
| 170 | NPY_AUXDATA_FREE((NpyAuxData *)auxdata); |
| 171 | return -1; |
| 172 | } |
| 173 | |
| 174 | *out_loop = (PyArrayMethod_StridedLoop *)&wrapping_method_strided_loop; |
| 175 | *out_transferdata = (NpyAuxData *)auxdata; |
| 176 | return 0; |
| 177 | } |
| 178 | |
| 179 | |
| 180 | /* |
nothing calls this directly
no test coverage detected