/* Wrappers around malloc and memory debugging support.
- Copyright (C) 2003-2006 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2004, 2005, 2006, 2007 Free Software Foundation,
+ Inc.
This file is part of GNU Wget.
file, but you are not obligated to do so. If you do not wish to do
so, delete this exception statement from your version. */
-#include <config.h>
+#include "wget.h"
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <assert.h>
-#include "wget.h"
#include "xmalloc.h"
-#include "hash.h" /* for hash_pointer */
+#include "hash.h" /* for hash_pointer */
/* This file implements several wrappers around the basic allocation
routines. This is done for two reasons: first, so that the callers
call malloc. */
log_set_save_context (false);
logprintf (LOG_ALWAYS,
- _("%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"),
- exec_name, context, attempted_size);
+ _("%s: %s: Failed to allocate %ld bytes; memory exhausted.\n"),
+ exec_name, context, attempted_size);
exit (1);
}
/* Home-grown hash table of mallocs: */
-#define SZ 100003 /* Prime just over 100,000. Increase
- it to debug larger Wget runs. */
+#define SZ 100003 /* Prime just over 100,000. Increase
+ it to debug larger Wget runs. */
static struct {
const void *ptr;
/* Find the new location for the key. */
int j = hash_pointer (ptr2) % SZ;
for (; malloc_table[j].ptr != NULL; j = (j + 1) % SZ)
- if (ptr2 == malloc_table[j].ptr)
- /* No need to relocate entry at [i]; it's already at or near
- its hash position. */
- goto cont_outer;
+ if (ptr2 == malloc_table[j].ptr)
+ /* No need to relocate entry at [i]; it's already at or near
+ its hash position. */
+ goto cont_outer;
malloc_table[j] = malloc_table[i];
malloc_table[i].ptr = NULL;
cont_outer:
{
int i;
printf ("\nMalloc: %d\nFree: %d\nBalance: %d\n\n",
- malloc_count, free_count, malloc_count - free_count);
+ malloc_count, free_count, malloc_count - free_count);
for (i = 0; i < SZ; i++)
if (malloc_table[i].ptr != NULL)
printf ("0x%0*lx: %s:%d\n", PTR_FORMAT (malloc_table[i].ptr),
- malloc_table[i].file, malloc_table[i].line);
+ malloc_table[i].file, malloc_table[i].line);
}
void *
if (ptr == NULL)
{
fprintf (stderr, "%s: xfree(NULL) at %s:%d\n",
- exec_name, source_file, source_line);
+ exec_name, source_file, source_line);
abort ();
}
if (!unregister_ptr (ptr))
{
fprintf (stderr, "%s: bad xfree(0x%0*lx) at %s:%d\n",
- exec_name, PTR_FORMAT (ptr), source_file, source_line);
+ exec_name, PTR_FORMAT (ptr), source_file, source_line);
abort ();
}
++free_count;