Pass the requested size from xmalloc() and xrealloc() on to xalloc_fail_func()
This commit is contained in:
parent
210a92cae9
commit
baebae2749
2 changed files with 12 additions and 7 deletions
|
@ -69,7 +69,7 @@ int xalloc_exit_failure = EXIT_FAILURE;
|
||||||
char *const xalloc_msg_memory_exhausted = N_("Memory exhausted");
|
char *const xalloc_msg_memory_exhausted = N_("Memory exhausted");
|
||||||
|
|
||||||
/* FIXME: describe */
|
/* FIXME: describe */
|
||||||
void (*xalloc_fail_func) () = 0;
|
void (*xalloc_fail_func) (int) = 0;
|
||||||
|
|
||||||
#if __STDC__ && (HAVE_VPRINTF || HAVE_DOPRNT)
|
#if __STDC__ && (HAVE_VPRINTF || HAVE_DOPRNT)
|
||||||
void error (int, int, const char *, ...);
|
void error (int, int, const char *, ...);
|
||||||
|
@ -78,10 +78,10 @@ void error ();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static void
|
static void
|
||||||
xalloc_fail ()
|
xalloc_fail (int size)
|
||||||
{
|
{
|
||||||
if (xalloc_fail_func)
|
if (xalloc_fail_func)
|
||||||
(*xalloc_fail_func) ();
|
(*xalloc_fail_func) (size);
|
||||||
error (xalloc_exit_failure, 0, xalloc_msg_memory_exhausted);
|
error (xalloc_exit_failure, 0, xalloc_msg_memory_exhausted);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -92,10 +92,12 @@ xmalloc (n)
|
||||||
size_t n;
|
size_t n;
|
||||||
{
|
{
|
||||||
void *p;
|
void *p;
|
||||||
|
extern char*cp_file;
|
||||||
|
extern int cp_line;
|
||||||
|
|
||||||
p = malloc (n);
|
p = malloc (n);
|
||||||
if (p == 0)
|
if (p == 0)
|
||||||
xalloc_fail ();
|
xalloc_fail ((int)n);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +112,7 @@ xrealloc (p, n)
|
||||||
{
|
{
|
||||||
p = realloc (p, n);
|
p = realloc (p, n);
|
||||||
if (p == 0)
|
if (p == 0)
|
||||||
xalloc_fail ();
|
xalloc_fail (n);
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -19,6 +19,9 @@
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* $Log: tincd.c,v $
|
* $Log: tincd.c,v $
|
||||||
|
* Revision 1.5 2000/04/17 16:23:29 zarq
|
||||||
|
* Pass the requested size from xmalloc() and xrealloc() on to xalloc_fail_func()
|
||||||
|
*
|
||||||
* Revision 1.4 2000/04/06 18:28:29 zarq
|
* Revision 1.4 2000/04/06 18:28:29 zarq
|
||||||
* New option -D, don't detach.
|
* New option -D, don't detach.
|
||||||
*
|
*
|
||||||
|
@ -156,9 +159,9 @@ parse_options(int argc, char **argv, char **envp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void memory_full(void)
|
void memory_full(int size)
|
||||||
{
|
{
|
||||||
syslog(LOG_ERR, "Memory exhausted; exiting.");
|
syslog(LOG_ERR, "Memory exhausted (last is %s:%d) (couldn't allocate %d bytes); exiting.", cp_file, cp_line, size);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue