Author: Manuel Jacob
Branch: refactor-buffer-api
Changeset: r66456:cab5a51bf6e4
Date: 2013-08-30 11:45 +0100
http://bitbucket.org/pypy/pypy/changeset/cab5a51bf6e4/

Log:    Fix buffer_attach().

diff --git a/pypy/module/cpyext/bufferobject.py 
b/pypy/module/cpyext/bufferobject.py
--- a/pypy/module/cpyext/bufferobject.py
+++ b/pypy/module/cpyext/bufferobject.py
@@ -39,24 +39,25 @@
     py_buf.c_b_offset = 0
     rffi.setintfield(py_buf, 'c_b_readonly', 1)
     rffi.setintfield(py_buf, 'c_b_hash', -1)
+    buf = w_obj.buf
 
-    if isinstance(w_obj, SubBuffer):
-        py_buf.c_b_offset = w_obj.offset
-        w_obj = w_obj.buffer
+    if isinstance(buf, SubBuffer):
+        py_buf.c_b_offset = buf.offset
+        buf = buf.buffer
 
-    # If w_obj already allocated a fixed buffer, use it, and keep a
-    # reference to w_obj.
+    # If buf already allocated a fixed buffer, use it, and keep a
+    # reference to buf.
     # Otherwise, b_base stays NULL, and we own the b_ptr.
 
-    if isinstance(w_obj, StringBuffer):
+    if isinstance(buf, StringBuffer):
         py_buf.c_b_base = lltype.nullptr(PyObject.TO)
-        py_buf.c_b_ptr = rffi.cast(rffi.VOIDP, rffi.str2charp(w_obj.value))
-        py_buf.c_b_size = w_obj.getlength()
-    elif isinstance(w_obj, ArrayBuffer):
-        w_base = w_obj.array
+        py_buf.c_b_ptr = rffi.cast(rffi.VOIDP, rffi.str2charp(buf.value))
+        py_buf.c_b_size = buf.getlength()
+    elif isinstance(buf, ArrayBuffer):
+        w_base = buf.array
         py_buf.c_b_base = make_ref(space, w_base)
-        py_buf.c_b_ptr = rffi.cast(rffi.VOIDP, w_obj.array._charbuf_start())
-        py_buf.c_b_size = w_obj.getlength()
+        py_buf.c_b_ptr = rffi.cast(rffi.VOIDP, buf.array._charbuf_start())
+        py_buf.c_b_size = buf.getlength()
     else:
         raise OperationError(space.w_NotImplementedError, space.wrap(
             "buffer flavor not supported"))
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to