Author: Armin Rigo <ar...@tunes.org>
Branch: reverse-debugger-updated
Changeset: r94562:679c88232aae
Date: 2018-05-14 11:36 +0200
http://bitbucket.org/pypy/pypy/changeset/679c88232aae/

Log:    Fix some tests that failed with "trying to change a frozen option
        object"

diff --git a/rpython/rlib/objectmodel.py b/rpython/rlib/objectmodel.py
--- a/rpython/rlib/objectmodel.py
+++ b/rpython/rlib/objectmodel.py
@@ -373,18 +373,36 @@
         hop.exception_cannot_occur()
         return hop.inputconst(lltype.Void, translator.config)
 
-def _import_revdb():
-    from rpython.rlib import revdb
-    return revdb
 
 def revdb_flag_io_disabled():
-    config = fetch_translated_config()
-    if config is not None and config.translation.reverse_debugger:
-        revdb = _import_revdb()
-        if revdb.flag_io_disabled():
-            return revdb
+    revdb = _import_revdb()
+    if revdb and revdb.flag_io_disabled():
+        return revdb
     return None
 
+def _import_revdb():
+    "NOT_RPYTHON"
+    return None
+
+class Entry(ExtRegistryEntry):
+    _about_ = _import_revdb
+
+    def compute_result_annotation(self):
+        revdb = None
+        config = self.bookkeeper.annotator.translator.config
+        if config.translation.reverse_debugger:
+            from rpython.rlib import revdb
+        return self.bookkeeper.immutablevalue(revdb)
+
+    def specialize_call(self, hop):
+        from rpython.rtyper.lltypesystem import lltype
+        revdb = None
+        config = hop.rtyper.annotator.translator.config
+        if config.translation.reverse_debugger:
+            from rpython.rlib import revdb
+        hop.exception_cannot_occur()
+        return hop.inputconst(lltype.Void, revdb)
+
 # ____________________________________________________________
 
 class FREED_OBJECT(object):
_______________________________________________
pypy-commit mailing list
pypy-commit@python.org
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to