mirror of
https://https.git.savannah.gnu.org/git/gnulib.git
synced 2026-09-01 02:34:55 +00:00
xhash: provide hash_xinitialize
Suggested by Egor Pugin <egor.pugin@gmail.com> https://lists.gnu.org/archive/html/bison-patches/2019-09/msg00026.html * modules/xhash, lib/xhash.c: New. * lib/hash.h (hash_xinitialize): New.
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2019-09-09 Akim Demaille <akim@lrde.epita.fr>
|
||||
|
||||
xhash: provide hash_xinitialize.
|
||||
Suggested by Egor Pugin <egor.pugin@gmail.com>
|
||||
https://lists.gnu.org/archive/html/bison-patches/2019-09/msg00026.html
|
||||
* modules/xhash, lib/xhash.c: New.
|
||||
* lib/hash.h (hash_xinitialize): New.
|
||||
|
||||
2019-09-09 Bruno Haible <bruno@clisp.org>
|
||||
|
||||
findprog-in: Make exec optimization optional.
|
||||
|
||||
@@ -89,6 +89,9 @@ void hash_reset_tuning (Hash_tuning *);
|
||||
Hash_table *hash_initialize (size_t, const Hash_tuning *,
|
||||
Hash_hasher, Hash_comparator,
|
||||
Hash_data_freer) _GL_ATTRIBUTE_WUR;
|
||||
Hash_table *hash_xinitialize (size_t, const Hash_tuning *,
|
||||
Hash_hasher, Hash_comparator,
|
||||
Hash_data_freer) _GL_ATTRIBUTE_WUR;
|
||||
void hash_clear (Hash_table *);
|
||||
void hash_free (Hash_table *);
|
||||
|
||||
|
||||
+38
@@ -0,0 +1,38 @@
|
||||
/* hash - hashing table processing.
|
||||
|
||||
Copyright (C) 2019 Free Software Foundation, Inc.
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation; either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <https://www.gnu.org/licenses/>. */
|
||||
|
||||
#include <config.h>
|
||||
|
||||
/* Specification. */
|
||||
#include "hash.h"
|
||||
|
||||
#include "xalloc.h"
|
||||
|
||||
/* Same as hash_initialize, but invokes xalloc_die on memory
|
||||
exhaustion. */
|
||||
|
||||
Hash_table *
|
||||
hash_xinitialize (size_t candidate, const Hash_tuning *tuning,
|
||||
Hash_hasher hasher, Hash_comparator comparator,
|
||||
Hash_data_freer data_freer)
|
||||
{
|
||||
Hash_table *res =
|
||||
hash_initialize (candidate, tuning, hasher, comparator, data_freer);
|
||||
if (!res)
|
||||
xalloc_die ();
|
||||
return res;
|
||||
}
|
||||
@@ -0,0 +1,23 @@
|
||||
Description:
|
||||
Parameterizable hash table, with out-of-memory checking.
|
||||
|
||||
Files:
|
||||
lib/xhash.c
|
||||
|
||||
Depends-on:
|
||||
hash
|
||||
xalloc
|
||||
|
||||
configure.ac:
|
||||
|
||||
Makefile.am:
|
||||
lib_SOURCES += xhash.c
|
||||
|
||||
Include:
|
||||
"hash.h"
|
||||
|
||||
License:
|
||||
GPLv3+
|
||||
|
||||
Maintainer:
|
||||
Akim Demaille, Jim Meyering
|
||||
Reference in New Issue
Block a user