Author: Tim Felgentreff <[email protected]>
Branch:
Changeset: r521:e848891e0606
Date: 2013-12-06 17:22 +0100
http://bitbucket.org/pypy/lang-smalltalk/changeset/e848891e0606/
Log: workaround: cursor setting doesn't currently work in modern images
diff --git a/spyvm/primitives.py b/spyvm/primitives.py
--- a/spyvm/primitives.py
+++ b/spyvm/primitives.py
@@ -679,7 +679,7 @@
# mask is a form object
w_contents = w_mask.fetch(interp.space, 0)
if isinstance(w_contents, model.W_WordsObject):
- w_mask = w_contents.words
+ mask_words = w_contents.words
else:
raise PrimitiveFailedError
else:
@@ -691,14 +691,18 @@
height = interp.space.unwrap_int(w_rcvr.fetch(interp.space, 2))
depth = interp.space.unwrap_int(w_rcvr.fetch(interp.space, 3))
hotpt = wrapper.PointWrapper(interp.space, w_rcvr.fetch(interp.space, 4))
- display.SDLCursor.set(
- w_bitmap.words,
- width,
- height,
- hotpt.x(),
- hotpt.y(),
- mask_words=mask_words
- )
+ if not interp.image.is_modern:
+ display.SDLCursor.set(
+ w_bitmap.words,
+ width,
+ height,
+ hotpt.x(),
+ hotpt.y(),
+ mask_words=mask_words
+ )
+ else:
+ # TODO: Implement
+ pass
interp.space.objtable['w_cursor'] = w_rcvr
return w_rcvr
diff --git a/spyvm/shadow.py b/spyvm/shadow.py
--- a/spyvm/shadow.py
+++ b/spyvm/shadow.py
@@ -355,8 +355,7 @@
def find_selector(self, w_selector):
if self.invalid:
- self.sync_cache()
- assert not self.invalid
+ return None
return self.methoddict.get(w_selector, None)
def update(self): return self.sync_cache()
diff --git a/spyvm/squeakimage.py b/spyvm/squeakimage.py
--- a/spyvm/squeakimage.py
+++ b/spyvm/squeakimage.py
@@ -375,6 +375,7 @@
self.w_simulateCopyBits = self.find_symbol(space, reader,
"simulateCopyBits")
self.lastWindowSize = reader.lastWindowSize
self.version = reader.version
+ self.is_modern = reader.version.magic > 6502
def find_symbol(self, space, reader, symbol):
w_dnu = self.special(constants.SO_DOES_NOT_UNDERSTAND)
diff --git a/spyvm/test/test_miniimage.py b/spyvm/test/test_miniimage.py
--- a/spyvm/test/test_miniimage.py
+++ b/spyvm/test/test_miniimage.py
@@ -306,6 +306,14 @@
assert w_result is not None
assert w_result.as_string() == "someString"
+def test_create_new_symbol_new_with_arg0():
+ w_dnu = get_image().special(constants.SO_DOES_NOT_UNDERSTAND)
+ w_Symbol = w_dnu.getclass(space)
+ w_res = perform(w_Symbol, "new:", w(0))
+ assert w_res.getclass(space).is_same_object(w_Symbol)
+ assert isinstance(w_res, model.W_BytesObject)
+ assert w_res.size() == 0
+
def test_pi_as_w_float():
import math
w_result = perform(interp.space.w_Float, "pi")
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit