# HG changeset patch # User Kim F. Storm # Date 1121869740 0 # Node ID dc17db575e1138c7c111fa9b609ee6581d334950 # Parent 05e8e404faa91779c07bd0cf1eb9bb1d3a77d38a (Fload, load_unwind): Use make_save_value to unwind protect stream. diff -r 05e8e404faa9 -r dc17db575e11 src/lread.c --- a/src/lread.c Wed Jul 20 14:28:49 2005 +0000 +++ b/src/lread.c Wed Jul 20 14:29:00 2005 +0000 @@ -674,7 +674,6 @@ { register FILE *stream; register int fd = -1; - register Lisp_Object lispstream; int count = SPECPDL_INDEX (); Lisp_Object temp; struct gcpro gcpro1; @@ -904,10 +903,7 @@ } GCPRO1 (file); - lispstream = Fcons (Qnil, Qnil); - XSETCARFASTINT (lispstream, (EMACS_UINT)stream >> 16); - XSETCDRFASTINT (lispstream, (EMACS_UINT)stream & 0xffff); - record_unwind_protect (load_unwind, lispstream); + record_unwind_protect (load_unwind, make_save_value (stream, 0)); record_unwind_protect (load_descriptor_unwind, load_descriptor_list); specbind (Qload_file_name, found); specbind (Qinhibit_file_name_operation, Qnil); @@ -960,8 +956,9 @@ load_unwind (stream) /* used as unwind-protect function in load */ Lisp_Object stream; { - fclose ((FILE *) (XFASTINT (XCAR (stream)) << 16 - | XFASTINT (XCDR (stream)))); + struct Lisp_Save_Value *p = XSAVE_VALUE (stream); + + fclose ((FILE *) p->pointer); if (--load_in_progress < 0) load_in_progress = 0; return Qnil; }