X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=include%2Fhashtab.h;h=6cca342b98973320086b58734aac922b1eeab617;hb=37ab86550b9da31d6c32c2d3384bd27f0426e935;hp=4f67448a9af8f15d947e35988158353018e0736c;hpb=ede801325281d5269eec09e86456049cd6f722e4;p=deliverable%2Fbinutils-gdb.git diff --git a/include/hashtab.h b/include/hashtab.h index 4f67448a9a..6cca342b98 100644 --- a/include/hashtab.h +++ b/include/hashtab.h @@ -1,5 +1,5 @@ /* An expandable hash tables datatype. - Copyright (C) 1999, 2000, 2002, 2003, 2004 Free Software Foundation, Inc. + Copyright (C) 1999-2020 Free Software Foundation, Inc. Contributed by Vladimir Makarov (vmakarov@cygnus.com). This program is free software; you can redistribute it and/or modify @@ -38,10 +38,6 @@ extern "C" { #include "ansidecl.h" -#ifndef GTY -#define GTY(X) -#endif - /* The type for a hash code. */ typedef unsigned int hashval_t; @@ -96,7 +92,7 @@ typedef void (*htab_free_with_arg) (void *, void *); functions mentioned below. The size of this structure is subject to change. */ -struct GTY(()) htab { +struct htab { /* Pointer to hash function. */ htab_hash hash_f; @@ -107,7 +103,7 @@ struct GTY(()) htab { htab_del del_f; /* Table itself. */ - void ** GTY ((use_param, length ("%h.size"))) entries; + void **entries; /* Current size (in entries) of the hash table. */ size_t size; @@ -131,7 +127,7 @@ struct GTY(()) htab { htab_free free_f; /* Alternate allocate/free functions, which take an extra argument. */ - void * GTY((skip)) alloc_arg; + void *alloc_arg; htab_alloc_with_arg alloc_with_arg_f; htab_free_with_arg free_with_arg_f; @@ -156,6 +152,9 @@ extern htab_t htab_create_alloc_ex (size_t, htab_hash, void *, htab_alloc_with_arg, htab_free_with_arg); +extern htab_t htab_create_typed_alloc (size_t, htab_hash, htab_eq, htab_del, + htab_alloc, htab_alloc, htab_free); + /* Backward-compatibility functions. */ extern htab_t htab_create (size_t, htab_hash, htab_eq, htab_del); extern htab_t htab_try_create (size_t, htab_hash, htab_eq, htab_del); @@ -174,8 +173,8 @@ extern void * htab_find_with_hash (htab_t, const void *, hashval_t); extern void ** htab_find_slot_with_hash (htab_t, const void *, hashval_t, enum insert_option); extern void htab_clear_slot (htab_t, void **); -extern void htab_remove_elt (htab_t, void *); -extern void htab_remove_elt_with_hash (htab_t, void *, hashval_t); +extern void htab_remove_elt (htab_t, const void *); +extern void htab_remove_elt_with_hash (htab_t, const void *, hashval_t); extern void htab_traverse (htab_t, htab_trav, void *); extern void htab_traverse_noresize (htab_t, htab_trav, void *);