[pypy-svn] r78494 - in pypy/branch/fast-forward/pypy/module/mmap: . test
afa at codespeak.net
afa at codespeak.net
Fri Oct 29 23:53:20 CEST 2010
Author: afa
Date: Fri Oct 29 23:53:19 2010
New Revision: 78494
Modified:
pypy/branch/fast-forward/pypy/module/mmap/__init__.py
pypy/branch/fast-forward/pypy/module/mmap/interp_mmap.py
pypy/branch/fast-forward/pypy/module/mmap/test/test_mmap.py
Log:
mmap.mmap is now a class (it was a function)
Modified: pypy/branch/fast-forward/pypy/module/mmap/__init__.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/mmap/__init__.py (original)
+++ pypy/branch/fast-forward/pypy/module/mmap/__init__.py Fri Oct 29 23:53:19 2010
@@ -4,7 +4,7 @@
class Module(MixedModule):
interpleveldefs = {
'PAGESIZE': 'space.wrap(interp_mmap.PAGESIZE)',
- 'mmap': 'interp_mmap.mmap'
+ 'mmap': 'interp_mmap.W_MMap'
}
appleveldefs = {
Modified: pypy/branch/fast-forward/pypy/module/mmap/interp_mmap.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/mmap/interp_mmap.py (original)
+++ pypy/branch/fast-forward/pypy/module/mmap/interp_mmap.py Fri Oct 29 23:53:19 2010
@@ -188,7 +188,43 @@
return space.wrap(StringLikeBuffer(space, space.wrap(self)))
descr_buffer.unwrap_spec = ['self']
+if rmmap._POSIX:
+
+ def mmap(space, w_subtype, fileno, length, flags=rmmap.MAP_SHARED,
+ prot=rmmap.PROT_WRITE | rmmap.PROT_READ,
+ access=rmmap._ACCESS_DEFAULT):
+ self = space.allocate_instance(W_MMap, w_subtype)
+ try:
+ W_MMap.__init__(self, space,
+ rmmap.mmap(fileno, length, flags, prot, access))
+ except OSError, e:
+ raise wrap_oserror(space, e, exception_name='w_EnvironmentError')
+ except RValueError, e:
+ raise OperationError(space.w_ValueError, space.wrap(e.message))
+ except RTypeError, e:
+ raise OperationError(space.w_TypeError, space.wrap(e.message))
+ return space.wrap(self)
+ mmap.unwrap_spec = [ObjSpace, W_Root, int, 'index', int, int, int]
+
+elif rmmap._MS_WINDOWS:
+
+ def mmap(space, w_subtype, fileno, length, tagname="",
+ access=rmmap._ACCESS_DEFAULT):
+ self = space.allocate_instance(W_MMap, w_subtype)
+ try:
+ W_MMap.__init__(self, space,
+ rmmap.mmap(fileno, length, tagname, access))
+ except OSError, e:
+ raise wrap_oserror(space, e, exception_name='w_EnvironmentError')
+ except RValueError, e:
+ raise OperationError(space.w_ValueError, space.wrap(e.message))
+ except RTypeError, e:
+ raise OperationError(space.w_TypeError, space.wrap(e.message))
+ return space.wrap(self)
+ mmap.unwrap_spec = [ObjSpace, W_Root, int, 'index', str, int]
+
W_MMap.typedef = TypeDef("mmap",
+ __new__ = interp2app(mmap),
close = interp2app(W_MMap.close),
read_byte = interp2app(W_MMap.read_byte),
readline = interp2app(W_MMap.readline),
@@ -210,43 +246,5 @@
__buffer__ = interp2app(W_MMap.descr_buffer),
)
-def _check_map_size(space, size):
- if size < 0:
- raise OperationError(space.w_TypeError,
- space.wrap("memory mapped size must be positive"))
- if rffi.cast(size_t, size) != size:
- raise OperationError(space.w_OverflowError,
- space.wrap("memory mapped size is too large (limited by C int)"))
-
-if rmmap._POSIX:
-
- def mmap(space, fileno, length, flags=rmmap.MAP_SHARED,
- prot=rmmap.PROT_WRITE | rmmap.PROT_READ, access=rmmap._ACCESS_DEFAULT):
-
- try:
- return space.wrap(W_MMap(space, rmmap.mmap(fileno, length,
- flags, prot, access)))
- except OSError, e:
- raise wrap_oserror(space, e, exception_name='w_EnvironmentError')
- except RValueError, e:
- raise OperationError(space.w_ValueError, space.wrap(e.message))
- except RTypeError, e:
- raise OperationError(space.w_TypeError, space.wrap(e.message))
- mmap.unwrap_spec = [ObjSpace, int, 'index', int, int, int]
-
-elif rmmap._MS_WINDOWS:
-
- def mmap(space, fileno, length, tagname="", access=rmmap._ACCESS_DEFAULT):
- try:
- return space.wrap(W_MMap(space, rmmap.mmap(fileno, length,
- tagname, access)))
- except OSError, e:
- raise wrap_oserror(space, e, exception_name='w_EnvironmentError')
- except RValueError, e:
- raise OperationError(space.w_ValueError, space.wrap(e.message))
- except RTypeError, e:
- raise OperationError(space.w_TypeError, space.wrap(e.message))
- mmap.unwrap_spec = [ObjSpace, int, 'index', str, int]
-
constants = rmmap.constants
PAGESIZE = rmmap.PAGESIZE
Modified: pypy/branch/fast-forward/pypy/module/mmap/test/test_mmap.py
==============================================================================
--- pypy/branch/fast-forward/pypy/module/mmap/test/test_mmap.py (original)
+++ pypy/branch/fast-forward/pypy/module/mmap/test/test_mmap.py Fri Oct 29 23:53:19 2010
@@ -34,7 +34,8 @@
from mmap import mmap
import os
import sys
-
+
+ assert isinstance(mmap, type)
raises(TypeError, mmap, "foo")
raises(TypeError, mmap, 0, "foo")
More information about the Pypy-commit
mailing list