Browse Source

use PyMemoryView_FromMemory (py 3.3+)

Thomas Waldmann 9 năm trước cách đây
mục cha
commit
8e13d315bb
1 tập tin đã thay đổi với 2 bổ sung15 xóa
  1. 2 15
      borg/_chunker.c

+ 2 - 15
borg/_chunker.c

@@ -186,19 +186,6 @@ chunker_fill(Chunker *c)
     return 1;
 }
 
-static PyObject *
-PyBuffer_FromMemory(void *data, Py_ssize_t len)
-{
-    Py_buffer buffer;
-    PyObject *mv;
-
-    PyBuffer_FillInfo(&buffer, NULL, data, len, 1, PyBUF_CONTIG_RO);
-    mv = PyMemoryView_FromBuffer(&buffer);
-    PyBuffer_Release(&buffer);
-    return mv;
-}
-
-
 static PyObject *
 chunker_process(Chunker *c)
 {
@@ -221,7 +208,7 @@ chunker_process(Chunker *c)
         c->done = 1;
         if(c->remaining) {
             c->bytes_yielded += c->remaining;
-            return PyBuffer_FromMemory(c->data + c->position, c->remaining);
+            return PyMemoryView_FromMemory(c->data + c->position, c->remaining, PyBUF_READ);
         }
         else {
             if(c->bytes_read == c->bytes_yielded)
@@ -253,5 +240,5 @@ chunker_process(Chunker *c)
     c->last = c->position;
     n = c->last - old_last;
     c->bytes_yielded += n;
-    return PyBuffer_FromMemory(c->data + old_last, n);
+    return PyMemoryView_FromMemory(c->data + old_last, n, PyBUF_READ);
 }