Mercurial > emacs
changeset 64533:dc17db575e11
(Fload, load_unwind): Use make_save_value to unwind
protect stream.
author | Kim F. Storm <storm@cua.dk> |
---|---|
date | Wed, 20 Jul 2005 14:29:00 +0000 |
parents | 05e8e404faa9 |
children | 709d28116a85 |
files | src/lread.c |
diffstat | 1 files changed, 4 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- 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; }