an error.
/* -*-C-*-
-$Id: fasdump.c,v 9.73 2008/01/30 20:02:12 cph Exp $
+$Id: fasdump.c,v 9.74 2008/02/13 23:26:21 cph Exp $
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
} fasl_file_info_t;
static void close_fasl_file (void *);
+static void abort_fasdump (void *);
static gc_walk_proc_t save_tospace_write;
static fasl_header_t fasl_header;
transaction_record_action (tat_always, close_fasl_file, (&ff_info));
open_tospace (heap_start);
+ /* This must be _before_ the call to initialize_fixups(): */
+ transaction_record_action (tat_abort, abort_fasdump, 0);
initialize_fixups ();
new_heap_start = (get_newspace_ptr ());
OS_file_remove (ff_info->filename);
}
+static void
+abort_fasdump (void * p)
+{
+ discard_tospace ();
+}
+
static bool
save_tospace_write (SCHEME_OBJECT * start, SCHEME_OBJECT * end, void * p)
{
/* -*-C-*-
-$Id: gccode.h,v 9.64 2008/01/30 20:02:13 cph Exp $
+$Id: gccode.h,v 9.65 2008/02/13 23:26:22 cph Exp $
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
extern void * tospace_to_newspace (void *);
extern void * newspace_to_tospace (void *);
extern bool save_tospace (gc_walk_proc_t *, void *);
+extern void discard_tospace (void);
extern void initialize_weak_chain (void);
extern void update_weak_pointers (void);
/* -*-C-*-
-$Id: gcloop.c,v 9.55 2008/01/30 20:02:13 cph Exp $
+$Id: gcloop.c,v 9.56 2008/02/13 23:26:23 cph Exp $
Copyright (C) 1986, 1987, 1988, 1989, 1990, 1991, 1992, 1993, 1994,
1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
return (ok);
}
+void
+discard_tospace (void)
+{
+ GUARANTEE_TOSPACE_OPEN ();
+ CHECK_NEWSPACE_SYNC ();
+ CLOSE_TOSPACE ();
+}
+
bool
tospace_available_p (unsigned long n_words)
{