[pypy-svn] r56352 - pypy/dist/pypy/module/_pickle_support
cfbolz at codespeak.net
cfbolz at codespeak.net
Mon Jul 7 16:03:50 CEST 2008
Author: cfbolz
Date: Mon Jul 7 16:03:50 2008
New Revision: 56352
Modified:
pypy/dist/pypy/module/_pickle_support/maker.py
Log:
Strange, strange code in _pickle_support. It looks wrong somehow. Fix at least
generator_new, which used to be crashable. frame_new is very strange still.
Modified: pypy/dist/pypy/module/_pickle_support/maker.py
==============================================================================
--- pypy/dist/pypy/module/_pickle_support/maker.py (original)
+++ pypy/dist/pypy/module/_pickle_support/maker.py Mon Jul 7 16:03:50 2008
@@ -55,30 +55,26 @@
w_len = space.len(w_seq)
index = space.int_w(w_index) - space.int_w(w_len)
return W_ReverseSeqIterObject(space, w_seq, index)
-
def frame_new(space, __args__):
args_w, kwds_w = __args__.unpack()
w_pycode, = args_w
pycode = space.interp_w(PyCode, w_pycode)
w = space.wrap
+ # XXX I don't get this? why isn't pycode actually used for anything?
new_frame = instantiate(space.FrameClass) # XXX fish
return space.wrap(new_frame)
-frame_new.unwrap_spec = [ObjSpace, Arguments]
+frame_new.unwrap_spec = [ObjSpace, PyCode]
def traceback_new(space):
tb = instantiate(PyTraceback)
return space.wrap(tb)
traceback_new.unwrap_spec = [ObjSpace]
-def generator_new(space, __args__):
- args_w, kwds_w = __args__.unpack() #stolen from std/fake.py
- w_frame, w_running = args_w
- frame = space.interp_w(PyFrame, w_frame)
- running = space.int_w(w_running)
+def generator_new(space, frame, running):
new_generator = GeneratorIterator(frame)
new_generator.running = running
return space.wrap(new_generator)
-generator_new.unwrap_spec = [ObjSpace, Arguments]
+generator_new.unwrap_spec = [ObjSpace, PyFrame, int]
def xrangeiter_new(space, current, remaining, step):
from pypy.module.__builtin__.functional import W_XRangeIterator
More information about the Pypy-commit
mailing list