[pypy-svn] r51356 - in pypy/dist/pypy/rlib: . test
fijal at codespeak.net
fijal at codespeak.net
Sat Feb 9 15:32:31 CET 2008
Author: fijal
Date: Sat Feb 9 15:32:29 2008
New Revision: 51356
Added:
pypy/dist/pypy/rlib/rbuffer.py (contents, props changed)
pypy/dist/pypy/rlib/test/test_rbuffer.py (contents, props changed)
Log:
Add stub file for rbuffer protocol (the pure-rpython buffer, potentially
used in many places (_rawffi, array, buffer...))
Added: pypy/dist/pypy/rlib/rbuffer.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/rlib/rbuffer.py Sat Feb 9 15:32:29 2008
@@ -0,0 +1,21 @@
+
+""" Implementation of pure-rpython low-level buffer, which allows
+you to take address of underlaying memory. Will be used to implement
+buffer protocol on app-level
+"""
+
+from pypy.rpython.lltypesystem import lltype, rffi
+
+class RBuffer:
+ ll_buffer = lltype.nullptr(rffi.CCHARP.TO)
+
+ def __init__(self, size):
+ self.ll_buffer = lltype.malloc(rffi.CCHARP.TO, size, flavor='raw')
+ self.size = size
+
+ def address(self):
+ return rffi.cast(rffi.INT, self.ll_buffer)
+
+ def free(self):
+ if self.ll_buffer:
+ lltype.free(self.ll_buffer, flavor='raw')
Added: pypy/dist/pypy/rlib/test/test_rbuffer.py
==============================================================================
--- (empty file)
+++ pypy/dist/pypy/rlib/test/test_rbuffer.py Sat Feb 9 15:32:29 2008
@@ -0,0 +1,10 @@
+
+import py
+from pypy.rlib.rbuffer import RBuffer
+
+class TestRbuffer:
+ def test_creation(self):
+ buf = RBuffer(3)
+ assert buf.address()
+ buf.free()
+
More information about the Pypy-commit
mailing list