[pypy-commit] pypy globals-quasiimmut: frame.f_globals is not writable

cfbolz pypy.commits at gmail.com
Thu Jan 14 05:22:03 EST 2016


Author: Carl Friedrich Bolz <cfbolz at gmx.de>
Branch: globals-quasiimmut
Changeset: r81756:6b34788b3303
Date: 2016-01-14 11:18 +0100
http://bitbucket.org/pypy/pypy/changeset/6b34788b3303/

Log:	frame.f_globals is not writable

diff --git a/pypy/interpreter/pyframe.py b/pypy/interpreter/pyframe.py
--- a/pypy/interpreter/pyframe.py
+++ b/pypy/interpreter/pyframe.py
@@ -123,9 +123,6 @@
             return debugdata.w_globals
         return jit.promote(self.pycode).w_globals
 
-    def set_w_globals(self, w_globals):
-        self.getorcreatedebug().w_globals = w_globals
-
     def get_w_f_trace(self):
         d = self.getdebug()
         if d is None:
@@ -673,9 +670,6 @@
         # bit silly, but GetSetProperty passes a space
         return self.get_w_globals()
 
-    def fset_w_globals(self, space, w_obj):
-        # bit silly, but GetSetProperty passes a space
-        return self.set_w_globals(w_obj)
 
     ### line numbers ###
 
diff --git a/pypy/interpreter/test/test_pyframe.py b/pypy/interpreter/test/test_pyframe.py
--- a/pypy/interpreter/test/test_pyframe.py
+++ b/pypy/interpreter/test/test_pyframe.py
@@ -34,6 +34,7 @@
         import sys
         f = sys._getframe()
         assert f.f_globals is globals()
+        raises(TypeError, "f.f_globals = globals()")
 
     def test_f_builtins(self):
         import sys, __builtin__
diff --git a/pypy/interpreter/typedef.py b/pypy/interpreter/typedef.py
--- a/pypy/interpreter/typedef.py
+++ b/pypy/interpreter/typedef.py
@@ -772,7 +772,7 @@
     f_restricted = GetSetProperty(PyFrame.fget_f_restricted),
     f_code = GetSetProperty(PyFrame.fget_code),
     f_locals = GetSetProperty(PyFrame.fget_getdictscope),
-    f_globals = GetSetProperty(PyFrame.fget_w_globals, PyFrame.fset_w_globals),
+    f_globals = GetSetProperty(PyFrame.fget_w_globals),
 )
 assert not PyFrame.typedef.acceptable_as_base_class  # no __new__
 


More information about the pypy-commit mailing list