[pypy-commit] cffi default: Remove 'ffi.rawload(None).errno', which was a hack that made sense at

arigo noreply at buildbot.pypy.org
Fri Jun 15 19:47:48 CEST 2012


Author: Armin Rigo <arigo at tunes.org>
Branch: 
Changeset: r370:c39a3b9b0286
Date: 2012-06-15 19:46 +0200
http://bitbucket.org/cffi/cffi/changeset/c39a3b9b0286/

Log:	Remove 'ffi.rawload(None).errno', which was a hack that made sense
	at the time where it was 'ffi.C.errno', but no longer really does
	now. Moreover, although errno is really coming from the C library,
	it's strange to have it appear in this library object because we
	never declared it.

diff --git a/cffi/api.py b/cffi/api.py
--- a/cffi/api.py
+++ b/cffi/api.py
@@ -222,9 +222,6 @@
     #
     class FFILibrary(object):
         def __getattribute__(self, name):
-            if libname is None and name == 'errno':
-                return backend.get_errno()
-            #
             try:
                 return function_cache[name]
             except KeyError:
@@ -247,10 +244,6 @@
             raise AttributeError(name)
 
         def __setattr__(self, name, value):
-            if libname is None and name == 'errno':
-                backend.set_errno(value)
-                return
-            #
             key = 'variable ' + name
             if key in ffi._parser._declarations:
                 tp = ffi._parser._declarations[key]
diff --git a/doc/source/index.rst b/doc/source/index.rst
--- a/doc/source/index.rst
+++ b/doc/source/index.rst
@@ -495,9 +495,7 @@
 
 ``errno``: the value of ``errno`` received from the most recent C call
 in this thread, and passed to the following C call, is available via
-``ffi.dlopen(None).errno`` as a global variable of the C standard
-library.  It can also be accessed more directly via reads and writes of
-``ffi.errno``.
+reads and writes of ``ffi.errno``.
 
 ``ffi.buffer(pointer)``: return a read-write buffer object that
 references the raw C data pointed to by the given 'cdata'.  The 'cdata'
diff --git a/testing/test_ownlib.py b/testing/test_ownlib.py
--- a/testing/test_ownlib.py
+++ b/testing/test_ownlib.py
@@ -34,10 +34,9 @@
             int test_getting_errno(void);
         """)
         ownlib = ffi.dlopen(self.module)
-        C = ffi.dlopen(None)
         res = ownlib.test_getting_errno()
         assert res == -1
-        assert C.errno == 123
+        assert ffi.errno == 123
 
     def test_setting_errno(self):
         if self.Backend is CTypesBackend and '__pypy__' in sys.modules:
@@ -47,8 +46,7 @@
             int test_setting_errno(void);
         """)
         ownlib = ffi.dlopen(self.module)
-        C = ffi.dlopen(None)
-        C.errno = 42
+        ffi.errno = 42
         res = ownlib.test_setting_errno()
         assert res == 42
-        assert C.errno == 42
+        assert ffi.errno == 42


More information about the pypy-commit mailing list