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;
 }