Author: Lars Wassermann <[email protected]>
Branch: 
Changeset: r285:90f0ca3c4b91
Date: 2013-04-16 16:17 +0200
http://bitbucket.org/pypy/lang-smalltalk/changeset/90f0ca3c4b91/

Log:    refactored the special nil hack to have its own closure (function
        extract)

diff --git a/spyvm/objspace.py b/spyvm/objspace.py
--- a/spyvm/objspace.py
+++ b/spyvm/objspace.py
@@ -135,9 +135,13 @@
         # Very special nil hack: in order to allow W_PointersObject's to
         # initialize their fields to nil, we have to create it in the model
         # package, and then patch up its fields here:
-        w_nil = self.w_nil = model.w_nil
-        w_nil.space = self
-        w_nil.s_class = 
self.classtable['w_UndefinedObject'].as_class_get_penumbra(self)
+        def patch_nil(w_nil):
+            from spyvm.fieldtypes import nilTyper
+            w_nil.space = self
+            w_nil.fieldtypes = nilTyper
+            w_nil.s_class = 
self.classtable['w_UndefinedObject'].as_class_get_penumbra(self)
+            return w_nil
+        w_nil = self.w_nil = patch_nil(model.w_nil)
 
         w_true = self.classtable['w_True'].as_class_get_shadow(self).new()
         self.w_true = w_true
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to