[pypy-commit] lang-smalltalk default: maybe fixed BIT_BLT primitive repainting on return

lwassermann noreply at buildbot.pypy.org
Wed Apr 3 13:49:06 CEST 2013


Author: Lars Wassermann <lars.wassermann at gmail.com>
Branch: 
Changeset: r247:bd6f9429a58c
Date: 2013-04-03 13:48 +0200
http://bitbucket.org/pypy/lang-smalltalk/changeset/bd6f9429a58c/

Log:	maybe fixed BIT_BLT primitive repainting on return

diff --git a/spyvm/primitives.py b/spyvm/primitives.py
--- a/spyvm/primitives.py
+++ b/spyvm/primitives.py
@@ -573,13 +573,15 @@
         raise PrimitiveFailedError
 
     space = interp.space
-    s_frame._sendSelfSelector(interp.image.w_simulateCopyBits, 0, interp)
-
-    w_dest_form = w_rcvr.fetch(space, 0)
-    if w_dest_form.is_same_object(space.objtable['w_display']):
-        w_bitmap = w_dest_form.fetch(space, 0)
-        assert isinstance(w_bitmap, model.W_DisplayBitmap)
-        w_bitmap.flush_to_screen()
+    try:
+        s_frame._sendSelfSelector(interp.image.w_simulateCopyBits, 0, interp)
+    except Return:
+        w_dest_form = w_rcvr.fetch(space, 0)
+        if w_dest_form.is_same_object(space.objtable['w_display']):
+            #import pdb; pdb.set_trace()
+            w_bitmap = w_dest_form.fetch(space, 0)
+            assert isinstance(w_bitmap, model.W_DisplayBitmap)
+            w_bitmap.flush_to_screen()
 
     # in case we return normally, we have to restore the removed w_rcvr
     return w_rcvr


More information about the pypy-commit mailing list