[pypy-svn] r55043 - pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk
tverwaes at codespeak.net
tverwaes at codespeak.net
Tue May 20 21:01:26 CEST 2008
Author: tverwaes
Date: Tue May 20 21:01:24 2008
New Revision: 55043
Modified:
pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/model.py
pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/shadow.py
Log:
small bugfix
Modified: pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/model.py
==============================================================================
--- pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/model.py (original)
+++ pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/model.py Tue May 20 21:01:24 2008
@@ -306,7 +306,7 @@
if shadow is None:
shadow = self.attach_shadow_of_class(TheClass)
elif not isinstance(shadow, TheClass):
- shadow.sync_w_self()
+ # TODO Add test for this
shadow.invalidate_shadow()
shadow = self.attach_shadow_of_class(TheClass)
shadow.sync_shadow()
@@ -335,7 +335,7 @@
if ContextPartShadow.is_block_context(self):
return self.as_blockcontext_get_shadow()
return self.as_methodcontext_get_shadow()
- self.as_special_get_shadow(ContextPartShadow)
+ return self.as_special_get_shadow(ContextPartShadow)
def as_methoddict_get_shadow(self):
from pypy.lang.smalltalk.shadow import MethodDictionaryShadow
Modified: pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/shadow.py
==============================================================================
--- pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/shadow.py (original)
+++ pypy/branch/smalltalk-shadow-changes/pypy/lang/smalltalk/shadow.py Tue May 20 21:01:24 2008
@@ -23,6 +23,10 @@
def sync_shadow(self): pass
class AbstractCachingShadow(AbstractShadow):
+ def __init__(self, w_self):
+ AbstractShadow.__init__(self, w_self)
+ self.invalid = True
+ self.invalidate_shadow()
def invalidate_shadow(self):
"""This should get called whenever the base Smalltalk
object changes."""
@@ -71,7 +75,7 @@
AbstractCachingShadow.invalidate_shadow(self)
self.w_methoddict = None
self.w_superclass = None
- self.name = None
+ self.name = ""
def getname(self):
return "%s class" % (self.name or '?',)
More information about the Pypy-commit
mailing list