diff options
author | Hans-Peter Nilsson <hp@axis.com> | 2000-11-04 07:48:51 +0000 |
---|---|---|
committer | Hans-Peter Nilsson <hp@axis.com> | 2000-11-04 07:48:51 +0000 |
commit | 29578e3eeb8da816e57d628c8f4607de0003968f (patch) | |
tree | 4ad5bb26c8e2db1598ad4574ccd22b548c1c2422 /include | |
parent | e46db834d9c80be876d4ad9724fa5e9762c54528 (diff) | |
download | cygnal-29578e3eeb8da816e57d628c8f4607de0003968f.tar.gz cygnal-29578e3eeb8da816e57d628c8f4607de0003968f.tar.bz2 cygnal-29578e3eeb8da816e57d628c8f4607de0003968f.zip |
* hashtab.h (struct htab): Add member return_allocation_failure.
(htab_try_create): New prototype. Mention which functions may
return NULL when this is used.
Diffstat (limited to 'include')
-rw-r--r-- | include/ChangeLog | 6 | ||||
-rw-r--r-- | include/hashtab.h | 10 |
2 files changed, 16 insertions, 0 deletions
diff --git a/include/ChangeLog b/include/ChangeLog index 3811a7c70..55b79273d 100644 --- a/include/ChangeLog +++ b/include/ChangeLog @@ -1,3 +1,9 @@ +2000-11-04 Hans-Peter Nilsson <hp@bitrange.com> + + * hashtab.h (struct htab): Add member return_allocation_failure. + (htab_try_create): New prototype. Mention which functions may + return NULL when this is used. + 2000-11-03 Hans-Peter Nilsson <hp@bitrange.com> * hashtab.h: Change void * to PTR where necessary. diff --git a/include/hashtab.h b/include/hashtab.h index c110ac5d1..a577c5e2a 100644 --- a/include/hashtab.h +++ b/include/hashtab.h @@ -98,6 +98,10 @@ struct htab /* The following member is used for debugging. Its value is number of collisions fixed for time of work with the hash table. */ unsigned int collisions; + + /* This is non-zero if we are allowed to return NULL for function calls + that allocate memory. */ + int return_allocation_failure; }; typedef struct htab *htab_t; @@ -109,6 +113,12 @@ enum insert_option {NO_INSERT, INSERT}; extern htab_t htab_create PARAMS ((size_t, htab_hash, htab_eq, htab_del)); + +/* This function is like htab_create, but may return NULL if memory + allocation fails, and also signals that htab_find_slot_with_hash and + htab_find_slot are allowed to return NULL when inserting. */ +extern htab_t htab_try_create PARAMS ((size_t, htab_hash, + htab_eq, htab_del)); extern void htab_delete PARAMS ((htab_t)); extern void htab_empty PARAMS ((htab_t)); |