Lines Matching refs:self

106 mbuf_release(_PyManagedBufferObject *self)
108 if (self->flags&_Py_MANAGED_BUFFER_RELEASED)
111 /* NOTE: at this point self->exports can still be > 0 if this function
113 self->flags |= _Py_MANAGED_BUFFER_RELEASED;
116 _PyObject_GC_UNTRACK(self);
117 PyBuffer_Release(&self->master);
121 mbuf_dealloc(_PyManagedBufferObject *self)
123 assert(self->exports == 0);
124 mbuf_release(self);
125 if (self->flags&_Py_MANAGED_BUFFER_FREE_FORMAT)
126 PyMem_Free(self->master.format);
127 PyObject_GC_Del(self);
131 mbuf_traverse(_PyManagedBufferObject *self, visitproc visit, void *arg)
133 Py_VISIT(self->master.obj);
138 mbuf_clear(_PyManagedBufferObject *self)
140 assert(self->exports >= 0);
141 mbuf_release(self);
389 copy_single(PyMemoryViewObject *self, const Py_buffer *dest, const Py_buffer *src)
391 CHECK_RELEASED_INT_AGAIN(self);
1035 _memory_release(PyMemoryViewObject *self)
1037 if (self->flags & _Py_MEMORYVIEW_RELEASED)
1040 if (self->exports == 0) {
1041 self->flags |= _Py_MEMORYVIEW_RELEASED;
1042 assert(self->mbuf->exports > 0);
1043 if (--self->mbuf->exports == 0)
1044 mbuf_release(self->mbuf);
1047 if (self->exports > 0) {
1049 "memoryview has %zd exported buffer%s", self->exports,
1050 self->exports==1 ? "" : "s");
1066 memoryview_release_impl(PyMemoryViewObject *self)
1069 if (_memory_release(self) < 0)
1075 memory_dealloc(PyMemoryViewObject *self)
1077 assert(self->exports == 0);
1078 _PyObject_GC_UNTRACK(self);
1079 (void)_memory_release(self);
1080 Py_CLEAR(self->mbuf);
1081 if (self->weakreflist != NULL)
1082 PyObject_ClearWeakRefs((PyObject *) self);
1083 PyObject_GC_Del(self);
1087 memory_traverse(PyMemoryViewObject *self, visitproc visit, void *arg)
1089 Py_VISIT(self->mbuf);
1094 memory_clear(PyMemoryViewObject *self)
1096 (void)_memory_release(self);
1097 Py_CLEAR(self->mbuf);
1102 memory_enter(PyObject *self, PyObject *args)
1104 CHECK_RELEASED(self);
1105 Py_INCREF(self);
1106 return self;
1110 memory_exit(PyObject *self, PyObject *args)
1112 return memoryview_release_impl((PyMemoryViewObject *)self);
1345 Cast a copy of 'self' to a different view. The input view must
1366 memoryview_cast_impl(PyMemoryViewObject *self, PyObject *format,
1373 CHECK_RELEASED(self);
1375 if (!MV_C_CONTIGUOUS(self->flags)) {
1380 if ((shape || self->view.ndim != 1) && zero_in_shape(self)) {
1394 if (self->view.ndim != 1 && ndim != 1) {
1402 mbuf_add_incomplete_view(self->mbuf, &self->view, ndim==0 ? 1 : (int)ndim);
1425 memoryview_toreadonly_impl(PyMemoryViewObject *self)
1428 CHECK_RELEASED(self);
1429 /* Even if self is already readonly, we still need to create a new
1432 self = (PyMemoryViewObject *) mbuf_add_view(self->mbuf, &self->view);
1433 if (self != NULL) {
1434 self->view.readonly = 1;
1436 return (PyObject *) self;
1445 memory_getbuf(PyMemoryViewObject *self, Py_buffer *view, int flags)
1447 Py_buffer *base = &self->view;
1448 int baseflags = self->flags;
1450 CHECK_RELEASED_INT(self);
1516 view->obj = (PyObject *)self;
1518 self->exports++;
1524 memory_releasebuf(PyMemoryViewObject *self, Py_buffer *view)
1526 self->exports--;
1686 unpack_single(PyMemoryViewObject *self, const char *ptr, const char *fmt)
1698 CHECK_RELEASED_AGAIN(self);
1778 pack_single(PyMemoryViewObject *self, char *ptr, PyObject *item, const char *fmt)
1795 CHECK_RELEASED_INT_AGAIN(self);
1816 CHECK_RELEASED_INT_AGAIN(self);
1837 CHECK_RELEASED_INT_AGAIN(self);
1844 CHECK_RELEASED_INT_AGAIN(self);
1853 CHECK_RELEASED_INT_AGAIN(self);
1860 CHECK_RELEASED_INT_AGAIN(self);
1869 CHECK_RELEASED_INT_AGAIN(self);
1883 CHECK_RELEASED_INT_AGAIN(self);
1901 CHECK_RELEASED_INT_AGAIN(self);
2068 tolist_base(PyMemoryViewObject *self, const char *ptr, const Py_ssize_t *shape,
2081 item = unpack_single(self, xptr, fmt);
2095 tolist_rec(PyMemoryViewObject *self, const char *ptr, Py_ssize_t ndim, const Py_ssize_t *shape,
2107 return tolist_base(self, ptr, shape, strides, suboffsets, fmt);
2115 item = tolist_rec(self, xptr, ndim-1, shape+1,
2137 memoryview_tolist_impl(PyMemoryViewObject *self)
2140 const Py_buffer *view = &self->view;
2143 CHECK_RELEASED(self);
2149 return unpack_single(self, view->buf, fmt);
2152 return tolist_base(self, view->buf, view->shape,
2157 return tolist_rec(self, view->buf, view->ndim, view->shape,
2178 memoryview_tobytes_impl(PyMemoryViewObject *self, const char *order)
2181 Py_buffer *src = VIEW_ADDR(self);
2185 CHECK_RELEASED(self);
2237 memoryview_hex_impl(PyMemoryViewObject *self, PyObject *sep,
2241 Py_buffer *src = VIEW_ADDR(self);
2245 CHECK_RELEASED(self);
2247 if (MV_C_CONTIGUOUS(self->flags)) {
2269 memory_repr(PyMemoryViewObject *self)
2271 if (self->flags & _Py_MEMORYVIEW_RELEASED)
2272 return PyUnicode_FromFormat("<released memory at %p>", self);
2274 return PyUnicode_FromFormat("<memory at %p>", self);
2346 memory_item(PyMemoryViewObject *self, Py_ssize_t index)
2348 Py_buffer *view = &(self->view);
2351 CHECK_RELEASED(self);
2365 return unpack_single(self, ptr, fmt);
2375 memory_item_multi(PyMemoryViewObject *self, PyObject *tup)
2377 Py_buffer *view = &(self->view);
2382 CHECK_RELEASED(self);
2396 return unpack_single(self, ptr, fmt);
2471 memory_subscript(PyMemoryViewObject *self, PyObject *key)
2474 view = &(self->view);
2476 CHECK_RELEASED(self);
2483 return unpack_single(self, view->buf, fmt);
2486 Py_INCREF(self);
2487 return (PyObject *)self;
2501 return memory_item(self, index);
2506 sliced = (PyMemoryViewObject *)mbuf_add_view(self->mbuf, view);
2520 return memory_item_multi(self, key);
2533 memory_ass_sub(PyMemoryViewObject *self, PyObject *key, PyObject *value)
2535 Py_buffer *view = &(self->view);
2540 CHECK_RELEASED_INT(self);
2558 return pack_single(self, ptr, value, fmt);
2580 return pack_single(self, ptr, value, fmt);
2603 ret = copy_single(self, &dest, &src);
2619 return pack_single(self, ptr, value, fmt);
2635 memory_length(PyMemoryViewObject *self)
2637 CHECK_RELEASED_INT(self);
2638 return self->view.ndim == 0 ? 1 : self->view.shape[0];
2945 memory_hash(PyMemoryViewObject *self)
2947 if (self->hash == -1) {
2948 Py_buffer *view = &self->view;
2953 CHECK_RELEASED_INT(self);
2971 if (!MV_C_CONTIGUOUS(self->flags)) {
2984 self->hash = _Py_HashBytes(mem, view->len);
2990 return self->hash;
3023 memory_obj_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3025 Py_buffer *view = &self->view;
3027 CHECK_RELEASED(self);
3036 memory_nbytes_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3038 CHECK_RELEASED(self);
3039 return PyLong_FromSsize_t(self->view.len);
3043 memory_format_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3045 CHECK_RELEASED(self);
3046 return PyUnicode_FromString(self->view.format);
3050 memory_itemsize_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3052 CHECK_RELEASED(self);
3053 return PyLong_FromSsize_t(self->view.itemsize);
3057 memory_shape_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3059 CHECK_RELEASED(self);
3060 return _IntTupleFromSsizet(self->view.ndim, self->view.shape);
3064 memory_strides_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3066 CHECK_RELEASED(self);
3067 return _IntTupleFromSsizet(self->view.ndim, self->view.strides);
3071 memory_suboffsets_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3073 CHECK_RELEASED(self);
3074 return _IntTupleFromSsizet(self->view.ndim, self->view.suboffsets);
3078 memory_readonly_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3080 CHECK_RELEASED(self);
3081 return PyBool_FromLong(self->view.readonly);
3085 memory_ndim_get(PyMemoryViewObject *self, void *Py_UNUSED(ignored))
3087 CHECK_RELEASED(self);
3088 return PyLong_FromLong(self->view.ndim);
3092 memory_c_contiguous(PyMemoryViewObject *self, PyObject *dummy)
3094 CHECK_RELEASED(self);
3095 return PyBool_FromLong(MV_C_CONTIGUOUS(self->flags));
3099 memory_f_contiguous(PyMemoryViewObject *self, PyObject *dummy)
3101 CHECK_RELEASED(self);
3102 return PyBool_FromLong(MV_F_CONTIGUOUS(self->flags));
3106 memory_contiguous(PyMemoryViewObject *self, PyObject *dummy)
3108 CHECK_RELEASED(self);
3109 return PyBool_FromLong(MV_ANY_CONTIGUOUS(self->flags));