From: Ulrich Drepper Date: Wed, 7 Oct 1998 10:47:39 +0000 (+0000) Subject: Enhance comment about obstack_alloc_failed_handler usage. X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ced2caa5e3b156a63f67c91665d59eef254b76e6;p=thirdparty%2Fglibc.git Enhance comment about obstack_alloc_failed_handler usage. --- diff --git a/malloc/obstack.c b/malloc/obstack.c index 731762f5a98..4895e48b192 100644 --- a/malloc/obstack.c +++ b/malloc/obstack.c @@ -78,7 +78,9 @@ union fooround {long x; double d;}; /* The functions allocating more room by calling `obstack_chunk_alloc' jump to the handler pointed to by `obstack_alloc_failed_handler'. - This variable by default points to the internal function + This can be set to a user defined function which should either + abort gracefully or use longjump - but shouldn't return. This + variable by default points to the internal function `print_and_abort'. */ #if defined (__STDC__) && __STDC__ static void print_and_abort (void); @@ -142,9 +144,8 @@ struct obstack *_obstack; CHUNKFUN is the function to use to allocate chunks, and FREEFUN the function to free them. - Return nonzero if successful, zero if out of memory. - To recover from an out of memory error, - free up some memory, then call this again. */ + Return nonzero if successful, calls obstack_alloc_failed_handler if + allocation fails. */ int _obstack_begin (h, size, alignment, chunkfun, freefun) diff --git a/malloc/obstack.h b/malloc/obstack.h index e7ae6959e54..d89cbc94c92 100644 --- a/malloc/obstack.h +++ b/malloc/obstack.h @@ -1,5 +1,5 @@ /* obstack.h - object stack macros - Copyright (C) 1988,89,90,91,92,93,94,96,97 Free Software Foundation, Inc. + Copyright (C) 1988,89,90,91,92,93,94,96,97,98 Free Software Foundation, Inc. This file is part of the GNU C Library. Its master source is NOT part of the C library, however. The master source lives in /gd/gnu/lib. @@ -260,8 +260,9 @@ int obstack_memory_used (struct obstack *obstack); so we do not declare them. */ /* Error handler called when `obstack_chunk_alloc' failed to allocate - more memory. This can be set to a user defined function. The - default action is to print a message and abort. */ + more memory. This can be set to a user defined function which + should either abort gracefully or use longjump - but shouldn't + return. The default action is to print a message and abort. */ #if defined (__STDC__) && __STDC__ extern void (*obstack_alloc_failed_handler) (void); #else