/* -----------------------------------------------------------------------------
- * $Id: ProfHeap.c,v 1.36 2002/05/07 04:58:15 sof Exp $
+ * $Id: ProfHeap.c,v 1.39 2002/11/01 11:05:46 simonmar Exp $
*
* (c) The GHC Team, 1998-2000
*
#include "Arena.h"
#include "Printer.h"
+#include <string.h>
+
/* -----------------------------------------------------------------------------
* era stores the current time period. It is the same as the
* number of censuses that have been performed.
int drag_total;
} Census;
-Census *censuses = NULL;
-nat n_censuses = 0;
+static Census *censuses = NULL;
+static nat n_censuses = 0;
#ifdef PROFILING
static void aggregateCensusInfo( void );
stat_startHeapCensus();
#endif
- // traverse the heap, collecting the census info
+ // Traverse the heap, collecting the census info
+
+ // First the small_alloc_list: we have to fix the free pointer at
+ // the end by calling tidyAllocatedLists() first.
+ tidyAllocateLists();
heapCensusChain( census, small_alloc_list );
+
+ // Now traverse the heap in each generation/step.
if (RtsFlags.GcFlags.generations == 1) {
heapCensusChain( census, g0s0->to_blocks );
} else {