diff options
author | Stefan Behnel <stefan_ml@behnel.de> | 2020-05-02 07:05:24 +0200 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2020-05-02 07:05:24 +0200 |
commit | f3394797b4b925e1292f7950a77ff07e9a525ea6 (patch) | |
tree | c1e23a0e2e1ec4e8d4c3c332d00b759683e1952b | |
parent | c10d651201984e3451d5d0a3e24e84aaec515297 (diff) | |
download | cython-f3394797b4b925e1292f7950a77ff07e9a525ea6.tar.gz |
Avoid useless resorting to char* in nogil code in MemoryView.pyx for raising exceptions, since constant Python strings are just fine there.
-rw-r--r-- | Cython/Utility/MemoryView.pyx | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/Cython/Utility/MemoryView.pyx b/Cython/Utility/MemoryView.pyx index bfefeb2ec..0b5fb04e0 100644 --- a/Cython/Utility/MemoryView.pyx +++ b/Cython/Utility/MemoryView.pyx @@ -1220,7 +1220,7 @@ cdef void *copy_data_to_temp({{memviewslice_name}} *src, result = malloc(size) if not result: - _err(PyExc_MemoryError, NULL) + _err_no_memory() # tmpslice[0] = src tmpslice.data = <char *> result @@ -1252,15 +1252,17 @@ cdef int _err_extents(int i, Py_ssize_t extent1, raise ValueError(f"got differing extents in dimension {i} (got {extent1} and {extent2})") @cname('__pyx_memoryview_err_dim') -cdef int _err_dim(PyObject *error, char *msg, int dim) except -1 with gil: - raise (<object>error)(msg.decode('ascii') % dim) +cdef int _err_dim(PyObject *error, str msg, int dim) except -1 with gil: + raise (<object>error)(msg % dim) @cname('__pyx_memoryview_err') -cdef int _err(PyObject *error, char *msg) except -1 with gil: - if msg != NULL: - raise (<object>error)(msg.decode('ascii')) - else: - raise (<object>error) +cdef int _err(PyObject *error, str msg) except -1 with gil: + raise (<object>error)(msg) + +@cname('__pyx_memoryview_err_no_memory') +cdef int _err_no_memory() except -1 with gil: + raise MemoryError + @cname('__pyx_memoryview_copy_contents') cdef int memoryview_copy_contents({{memviewslice_name}} src, |