[pypy-commit] lang-smalltalk default: fix translation

timfel noreply at buildbot.pypy.org
Tue Apr 16 14:01:22 CEST 2013


Author: Tim Felgentreff <timfelgentreff at gmail.com>
Branch: 
Changeset: r276:7d2893d503e6
Date: 2013-04-16 14:00 +0200
http://bitbucket.org/pypy/lang-smalltalk/changeset/7d2893d503e6/

Log:	fix translation

diff --git a/spyvm/display.py b/spyvm/display.py
--- a/spyvm/display.py
+++ b/spyvm/display.py
@@ -81,7 +81,9 @@
                                 else:
                                     pass # XXX: Todo?
                     elif c_type == RSDL.QUIT:
-                        exit(0)
+                        from spyvm.interpreter import ReturnFromTopLevel
+                        print "Window closed.."
+                        raise SystemExit()
         finally:
             lltype.free(event, flavor='raw')
 
@@ -121,6 +123,7 @@
     instance = None
 
     def __init__(self):
+        self.cursor = lltype.nullptr(RSDL.CursorPtr.TO)
         self.has_cursor = False
         self.has_display = False
 
@@ -129,10 +132,10 @@
             return
         if self.has_cursor:
             RSDL.FreeCursor(self.cursor)
+        data = self.words_to_bytes(len(data_words) * 4, data_words)
         try:
-            data = self.words_to_bytes(len(data_words) * 4, data_words)
+            mask = self.words_to_bytes(len(data_words) * 4, mask_words)
             try:
-                mask = self.words_to_bytes(len(data_words) * 4, mask_words)
                 self.cursor = RSDL.CreateCursor(data, mask, w * 2, h, x, y)
                 self.has_cursor = True
                 RSDL.SetCursor(self.cursor)
diff --git a/spyvm/primitives.py b/spyvm/primitives.py
--- a/spyvm/primitives.py
+++ b/spyvm/primitives.py
@@ -582,13 +582,13 @@
     if not (0 <= argcount <= 1):
         raise PrimitiveFailedError()
     w_rcvr = s_frame.peek(argcount)
+    mask_words = None
     if argcount == 1:
         # TODO: use mask
         w_mask = s_frame.peek(0)
         if not isinstance(w_mask, model.W_WordsObject):
             raise PrimitiveFailedError()
-    else:
-        w_mask = None
+        mask_words = w_mask.words
     w_bitmap = w_rcvr.fetch(interp.space, 0)
     if not isinstance(w_bitmap, model.W_WordsObject):
         raise PrimitiveFailedError()
@@ -602,7 +602,7 @@
         height,
         hotpt.x(),
         hotpt.y(),
-        w_mask.words if w_mask else None
+        mask_words=mask_words
     )
 
     interp.space.objtable['w_cursor'] = w_rcvr


More information about the pypy-commit mailing list