diff options
| author | Heather McIntyre <[email protected]> | 2024-07-12 18:23:56 -0400 |
|---|---|---|
| committer | Aaron Merey <[email protected]> | 2024-08-20 20:18:58 -0400 |
| commit | d6443d1a4df6057f9012d105037f52daaca911f1 (patch) | |
| tree | 269565f0ad6ee1d385db09279ce5e0e4021b7491 /libdw/dwarf_getcfi.c | |
| parent | 97b72c00603d1221c69ed22a8345817dde1685f3 (diff) | |
lib: Add eu_tsearch, eu_tfind, eu_tdelete and eu_tdestroy
Add struct search_tree to hold tree root and lock. Add new eu_t*
functions for ensuring synchronized tree access.
Replace tsearch, tfind, etc with eu_t* equivalents.
lib:
* Makefile.am (libeu_a_SOURCES): Add eu-search.c.
(noinst_HEADERS): Add eu-search.h and locks.h.
* eu-config.h: Move rwlock macros to locks.h.
* eu-search.c: New file containing tree search functions with
locking.
* eu-search.h: New file.
* locks.h: New file containing rwlock macros previously in
eu-config.h.
libdw:
* cfi.h (struct Dwarf_CFI_s): Change type of search tree members
from void * to search_tree.
* cie.c: Replace tree search functions with eu-search equivalents.
* dwarf_begin_elf.c (valid_p): Initialize search trees.
* dwarf_end.c (cu_free): Replace tree search functions
with eu-search equivalents.
* dwarf_getcfi.c (dwarf_getcfi): Initialize search trees.
* dwarf_getlocations.c: Replace search tree functions with
eu-search equivalents.
(__libdw_intern_expression): Change type of cache parameter to
search_tree *.
* dwarf_getmacros.c: Replace tree search functions with
eu-search equivalents.
* dwarf_getsrclines.c: Ditto.
* fde.c: Ditto.
* frame-cache.c (__libdw_destroy_frame_cache): Initialize search
trees.
* libdwP.h (struct Dwarf): Change type of search tree members
from void * to search_tree.
(struct Dwarf_CU): Ditto.
(__libdw_intern_expression): Change type of cache parameter to
search_tree *.
* libdw_find_split_unit.c: Replace tree search functions with
eu-search equivalents.
* libdw_findcu.c: Ditto.
libdwfl:
* cu.c: Ditto.
* libdwflP.h (struct Dwfl_Module): Replace void *lazy_cu_root
with search_tree lazy_cu_tree.
libelf:
* elf_begin.c (file_read_elf): Initialize rawchunck_tree.
* elf_end.c (elf_end): Replace tree search function with
eu-search equivalent.
* elf_getdata_rawchunck.c: Ditto.
* libelfP.h (struct Elf): Replace void * rawchuncks member with
search_tree rawchunk_tree.
Signed-off-by: Heather S. McIntyre <[email protected]>
Signed-off-by: Aaron Merey <[email protected]>
Signed-off-by: Mark Wielaard <[email protected]>
Diffstat (limited to 'libdw/dwarf_getcfi.c')
| -rw-r--r-- | libdw/dwarf_getcfi.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libdw/dwarf_getcfi.c b/libdw/dwarf_getcfi.c index afa8a460..a4497152 100644 --- a/libdw/dwarf_getcfi.c +++ b/libdw/dwarf_getcfi.c @@ -66,7 +66,10 @@ dwarf_getcfi (Dwarf *dbg) cfi->default_same_value = false; cfi->next_offset = 0; - cfi->cie_tree = cfi->fde_tree = cfi->expr_tree = NULL; + + eu_search_tree_init (&cfi->cie_tree); + eu_search_tree_init (&cfi->fde_tree); + eu_search_tree_init (&cfi->expr_tree); cfi->ebl = NULL; |
