On 7/29/07, Joe Smith <[EMAIL PROTECTED]> wrote: > What I have found is that (on CYGWIN) all of marshal seems to work fine > except for marshal.load(). > marshal.dump()'s output can be read by 2.5's marshal.load() without problem. > 3k's marshal.load() will not > load the data from 3k's marshal.dump or 2.5's marshal.dump() > > It turns out to be a fault due to an uninitialized value on a RFILE. > Specifically, the following patch (part of marshal_load in marshal.c fixes > things. > > -----BEGIN PATCH----- > Index: Python/marshal.c > =================================================================== > --- Python/marshal.c (revision 56620) > +++ Python/marshal.c (working copy) > @@ -1181,6 +1181,7 @@ > return NULL; > } > rf.strings = PyList_New(0); > + rf.depth=0; > result = read_object(&rf); > Py_DECREF(rf.strings); > Py_DECREF(data); > -----END PATCH----- > > I'll submit the patch to sourceforge if needed, although the fact that all > the other loading methods > do set rf.depth=0 (including PyMarshal_ReadObjectFromFile) indicates to me > that this is definately the correct patch. > Looks like that line was accidentally forgoten.
Thanks! Looks like that line was accidentally dropped -- perhaps as a result of a merge. It was in all previous versions. Anyway, I've added it back. Committed revision 56623. -- --Guido van Rossum (home page: http://www.python.org/~guido/) _______________________________________________ Python-3000 mailing list [email protected] http://mail.python.org/mailman/listinfo/python-3000 Unsubscribe: http://mail.python.org/mailman/options/python-3000/archive%40mail-archive.com
