diff options
Diffstat (limited to 'malloc')
-rw-r--r-- | malloc/obstack.c | 9 | ||||
-rw-r--r-- | malloc/obstack.h | 5 |
2 files changed, 8 insertions, 6 deletions
diff --git a/malloc/obstack.c b/malloc/obstack.c index a192441a49..76b7a95cd4 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 edbcd264df..beb548ecd2 100644 --- a/malloc/obstack.h +++ b/malloc/obstack.h @@ -254,8 +254,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 |