diff options
author | Stefan Behnel <stefan_ml@behnel.de> | 2020-05-01 16:59:22 +0200 |
---|---|---|
committer | Stefan Behnel <stefan_ml@behnel.de> | 2020-05-01 16:59:22 +0200 |
commit | e09db16847bb77176f13cb4cf40f0050e739e181 (patch) | |
tree | 5e93b563b7cbacb1370d150c102a471a3d5616c9 | |
parent | 5f6369ae1d49baafce48442940ba7c42d3363222 (diff) | |
download | cython-e09db16847bb77176f13cb4cf40f0050e739e181.tar.gz |
Avoid some unnecessary object operations in memory slice object creation code.
-rw-r--r-- | Cython/Utility/MemoryView.pyx | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/Cython/Utility/MemoryView.pyx b/Cython/Utility/MemoryView.pyx index 8d7848726..c7bda7278 100644 --- a/Cython/Utility/MemoryView.pyx +++ b/Cython/Utility/MemoryView.pyx @@ -328,7 +328,7 @@ cdef PyThread_type_lock[THREAD_LOCKS_PREALLOCATED] __pyx_memoryview_thread_locks @cname('__pyx_memoryview') -cdef class memoryview(object): +cdef class memoryview: cdef object obj cdef object _size @@ -558,6 +558,9 @@ cdef class memoryview(object): @property def base(self): + return self._get_base() + + cdef _get_base(self): return self.obj @property @@ -984,8 +987,7 @@ cdef class _memoryviewslice(memoryview): else: memoryview.assign_item_from_object(self, itemp, value) - @property - def base(self): + cdef _get_base(self): return self.from_object __pyx_getbuffer = capsule(<void *> &__pyx_memoryview_getbuffer, "getbuffer(obj, view, flags)") @@ -1006,12 +1008,12 @@ cdef memoryview_fromslice({{memviewslice_name}} memviewslice, # assert 0 < ndim <= memviewslice.memview.view.ndim, ( # ndim, memviewslice.memview.view.ndim) - result = _memoryviewslice(None, 0, dtype_is_object) + result = _memoryviewslice.__new__(_memoryviewslice, None, 0, dtype_is_object) result.from_slice = memviewslice __PYX_INC_MEMVIEW(&memviewslice, 1) - result.from_object = (<memoryview> memviewslice.memview).base + result.from_object = (<memoryview> memviewslice.memview)._get_base() result.typeinfo = memviewslice.memview.typeinfo result.view = memviewslice.memview.view |