Hi Egor, > Le 9 sept. 2019 à 01:15, Egor Pugin <[email protected]> a écrit : > >> Installed in master. > > Hi, > > Quick note about your changes. It seems all places with 'var = > hash_initialize()' have the following check: > if (!var) > xalloc_die (); > > Probably, it will be more... programmish if you make and add > xhash_initialize() function with that check in it. > DRY.
Yeah, I know. But I was lazy and decided to follow the pattern followed by the GNU Coreutils rather than pushing an upgrading to hash. But you convinced me, and I did it. I just pushed this in maint and master: commit 730936cdb8b58cfc6f59a060db4b5f5df9c447a8 Author: Akim Demaille <[email protected]> Date: Mon Sep 9 19:40:31 2019 +0200 gnulib: update Contains the creation of the xhash module. https://lists.gnu.org/archive/html/bug-gnulib/2019-09/msg00046.html * src/muscle-tab.c, src/state.c, src/symtab.c, src/uniqstr.c: Use hash_xinitialize. diff --git a/bootstrap.conf b/bootstrap.conf index 0d379797..44469581 100644 --- a/bootstrap.conf +++ b/bootstrap.conf @@ -25,7 +25,7 @@ gnulib_modules=' error extensions fdl fopen-safer getopt-gnu gettext-h git-version-gen gitlog-to-changelog - gpl-3.0 hash inttypes isnan javacomp-script + gpl-3.0 inttypes isnan javacomp-script javaexec-script ldexpl libtextstyle-optional @@ -48,6 +48,7 @@ gnulib_modules=' xalloc xalloc-die xconcat-filename + xhash xlist xmemdup0 xstrndup diff --git a/gnulib b/gnulib index 03add7eb..672663ac 160000 --- a/gnulib +++ b/gnulib @@ -1 +1 @@ -Subproject commit 03add7eb9d06ab509034ba01c904a4cb36f5706b +Subproject commit 672663aca33a8fac097f114693f69f09896ea62d diff --git a/lib/.gitignore b/lib/.gitignore index 344caefd..39a21e68 100644 --- a/lib/.gitignore +++ b/lib/.gitignore @@ -321,3 +321,4 @@ /assure.h /fsync.c /textstyle.in.h +/xhash.c diff --git a/src/muscle-tab.c b/src/muscle-tab.c index d3e358e6..91a45737 100644 --- a/src/muscle-tab.c +++ b/src/muscle-tab.c @@ -126,10 +126,8 @@ muscle_init (void) /* Initialize the muscle obstack. */ obstack_init (&muscle_obstack); - muscle_table = hash_initialize (HT_INITIAL_CAPACITY, NULL, hash_muscle, - hash_compare_muscles, muscle_entry_free); - if (!muscle_table) - xalloc_die (); + muscle_table = hash_xinitialize (HT_INITIAL_CAPACITY, NULL, hash_muscle, + hash_compare_muscles, muscle_entry_free); /* Version and input file. */ MUSCLE_INSERT_STRING ("version", VERSION); diff --git a/src/state.c b/src/state.c index 64bb256c..418f3fab 100644 --- a/src/state.c +++ b/src/state.c @@ -359,13 +359,11 @@ state_hasher (void const *s, size_t tablesize) void state_hash_new (void) { - state_table = hash_initialize (HT_INITIAL_CAPACITY, - NULL, - state_hasher, - state_comparator, - NULL); - if (!state_table) - xalloc_die (); + state_table = hash_xinitialize (HT_INITIAL_CAPACITY, + NULL, + state_hasher, + state_comparator, + NULL); } diff --git a/src/symtab.c b/src/symtab.c index 7b0439ad..417b71e4 100644 --- a/src/symtab.c +++ b/src/symtab.c @@ -779,20 +779,16 @@ hash_semantic_type_hasher (void const *m, size_t tablesize) void symbols_new (void) { - symbol_table = hash_initialize (HT_INITIAL_CAPACITY, - NULL, - hash_symbol_hasher, - hash_symbol_comparator, - symbol_free); - if (!symbol_table) - xalloc_die (); - semantic_type_table = hash_initialize (HT_INITIAL_CAPACITY, - NULL, - hash_semantic_type_hasher, - hash_semantic_type_comparator, - free); - if (!semantic_type_table) - xalloc_die (); + symbol_table = hash_xinitialize (HT_INITIAL_CAPACITY, + NULL, + hash_symbol_hasher, + hash_symbol_comparator, + symbol_free); + semantic_type_table = hash_xinitialize (HT_INITIAL_CAPACITY, + NULL, + hash_semantic_type_hasher, + hash_semantic_type_comparator, + free); } diff --git a/src/uniqstr.c b/src/uniqstr.c index d5c66846..3833b841 100644 --- a/src/uniqstr.c +++ b/src/uniqstr.c @@ -157,13 +157,11 @@ hash_uniqstr (void const *m, size_t tablesize) void uniqstrs_new (void) { - uniqstrs_table = hash_initialize (HT_INITIAL_CAPACITY, - NULL, - hash_uniqstr, - hash_compare_uniqstr, - free); - if (!uniqstrs_table) - xalloc_die (); + uniqstrs_table = hash_xinitialize (HT_INITIAL_CAPACITY, + NULL, + hash_uniqstr, + hash_compare_uniqstr, + free); }
