Lines Matching refs:view

305     Py_buffer view;
310 if ((*pb->bf_getbuffer)(obj, &view, PyBUF_SIMPLE) == -1) {
314 PyBuffer_Release(&view);
321 Py_buffer view;
327 if (PyObject_GetBuffer(obj, &view, PyBUF_SIMPLE) != 0)
330 *buffer = view.buf;
331 *buffer_len = view.len;
332 PyBuffer_Release(&view);
356 Py_buffer view;
365 ((*pb->bf_getbuffer)(obj, &view, PyBUF_WRITABLE) != 0)) {
371 *buffer = view.buf;
372 *buffer_len = view.len;
373 PyBuffer_Release(&view);
380 PyObject_GetBuffer(PyObject *obj, Py_buffer *view, int flags)
390 int res = (*pb->bf_getbuffer)(obj, view, flags);
396 _IsFortranContiguous(const Py_buffer *view)
404 if (view->len == 0) return 1;
405 if (view->strides == NULL) { /* C-contiguous by definition */
407 if (view->ndim <= 1) return 1;
410 assert(view->shape != NULL);
414 for (i=0; i<view->ndim; i++) {
415 if (view->shape[i] > 1) sd += 1;
421 assert(view->ndim > 0);
422 assert(view->shape != NULL);
424 sd = view->itemsize;
425 for (i=0; i<view->ndim; i++) {
426 dim = view->shape[i];
427 if (dim > 1 && view->strides[i] != sd) {
436 _IsCContiguous(const Py_buffer *view)
444 if (view->len == 0) return 1;
445 if (view->strides == NULL) return 1; /* C-contiguous by definition */
448 assert(view->ndim > 0);
449 assert(view->shape != NULL);
451 sd = view->itemsize;
452 for (i=view->ndim-1; i>=0; i--) {
453 dim = view->shape[i];
454 if (dim > 1 && view->strides[i] != sd) {
463 PyBuffer_IsContiguous(const Py_buffer *view, char order)
466 if (view->suboffsets != NULL) return 0;
469 return _IsCContiguous(view);
471 return _IsFortranContiguous(view);
473 return (_IsCContiguous(view) || _IsFortranContiguous(view));
479 PyBuffer_GetPointer(const Py_buffer *view, const Py_ssize_t *indices)
483 pointer = (char *)view->buf;
484 for (i = 0; i < view->ndim; i++) {
485 pointer += view->strides[i]*indices[i];
486 if ((view->suboffsets != NULL) && (view->suboffsets[i] >= 0)) {
487 pointer = *((char**)pointer) + view->suboffsets[i];
569 PyBuffer_FromContiguous(const Py_buffer *view, const void *buf, Py_ssize_t len, char fort)
577 if (len > view->len) {
578 len = view->len;
581 if (PyBuffer_IsContiguous(view, fort)) {
583 memcpy(view->buf, buf, len);
589 /* view->ndim <= 64 */
590 indices = (Py_ssize_t *)PyMem_Malloc(sizeof(Py_ssize_t)*(view->ndim));
595 for (k=0; k<view->ndim;k++) {
609 elements = len / view->itemsize;
611 ptr = PyBuffer_GetPointer(view, indices);
612 memcpy(ptr, src, view->itemsize);
613 src += view->itemsize;
614 addone(view->ndim, indices, view->shape);
716 PyBuffer_FillInfo(Py_buffer *view, PyObject *obj, void *buf, Py_ssize_t len,
719 if (view == NULL) {
721 "PyBuffer_FillInfo: view==NULL argument is obsolete");
732 view->obj = obj;
735 view->buf = buf;
736 view->len = len;
737 view->readonly = readonly;
738 view->itemsize = 1;
739 view->format = NULL;
741 view->format = "B";
742 view->ndim = 1;
743 view->shape = NULL;
745 view->shape = &(view->len);
746 view->strides = NULL;
748 view->strides = &(view->itemsize);
749 view->suboffsets = NULL;
750 view->internal = NULL;
755 PyBuffer_Release(Py_buffer *view)
757 PyObject *obj = view->obj;
763 pb->bf_releasebuffer(obj, view);
765 view->obj = NULL;
1523 Py_buffer view;
1613 if (PyObject_GetBuffer(o, &view, PyBUF_SIMPLE) == 0) {
1617 bytes = PyBytes_FromStringAndSize((const char *)view.buf, view.len);
1619 PyBuffer_Release(&view);
1625 PyBuffer_Release(&view);