]> git.rkrishnan.org Git - tahoe-lafs/tahoe-lafs.git/commitdiff
use buffers as generic "read" buffers instead of char buffers
authorZooko O'Whielacronx <zooko@zooko.com>
Thu, 25 Jan 2007 22:24:01 +0000 (15:24 -0700)
committerZooko O'Whielacronx <zooko@zooko.com>
Thu, 25 Jan 2007 22:24:01 +0000 (15:24 -0700)
This is a typing kludge -- if your buffers have elements of size > 1 then we will be processing only a subset of the elements and treating each byte of the element as a separate entry.
Oh well.

pyfec/fec/fecmodule.c

index 79edc40977c7c37b27886d3343c3396f60de01d7..c7ed0b82ffe9641c2f9fb4ea88056f9507eadf26 100644 (file)
@@ -152,7 +152,7 @@ Encoder_encode(Encoder *self, PyObject *args) {
             py_raise_fec_error("Precondition violation: %u'th item is required to offer the single-segment read character buffer protocol, but it does not.\n", i);
             goto err;
         }
-        if (PyObject_AsCharBuffer(fastinsharesitems[i], &(incshares[i]), &sz))
+        if (PyObject_AsReadBuffer(fastinsharesitems[i], &(incshares[i]), &sz))
             goto err;
         if (oldsz != 0 && oldsz != sz) {
             py_raise_fec_error("Precondition violation: Input shares are required to be all the same length.  oldsz: %Zu, sz: %Zu\n", oldsz, sz);
@@ -385,9 +385,11 @@ Decoder_decode(Decoder *self, PyObject *args) {
         if (csharenums[i] >= self->kk)
             needtorecover+=1;
 
-        if (!PyObject_CheckReadBuffer(fastsharesitems[i]))
+        if (!PyObject_CheckReadBuffer(fastsharesitems[i])) {
+            py_raise_fec_error("Precondition violation: %u'th item is required to offer the single-segment read character buffer protocol, but it does not.\n", i);
             goto err;
-        if (PyObject_AsCharBuffer(fastsharesitems[i], &(cshares[i]),  &sz))
+        }
+        if (PyObject_AsReadBuffer(fastsharesitems[i], &(cshares[i]),  &sz))
             goto err;
         if (oldsz != 0 && oldsz != sz) {
             py_raise_fec_error("Precondition violation: Input shares are required to be all the same length.  oldsz: %Zu, sz: %Zu\n", oldsz, sz);