output: cache the mapped file names

Don't repeatedly call malloc/free for each call to map_file_name.

* bootstrap.conf: We need hash-map.
* src/files.h, src/files.c (map_file_name): The caller must not free
the result.
Adjust callers.
(mapped_dir_prefix, spec_mapped_header_file): Remove.
* src/files.c
(map_file_name): Rename as...
(map_file_name_alloc): this.
(mapped_files, map_file_name, string_equals, string_hash, string_free):
New.
This commit is contained in:
Akim Demaille
2021-02-25 08:31:50 +01:00
parent b96528b48c
commit f6eb1ac87b
7 changed files with 94 additions and 48 deletions

6
lib/.gitignore vendored
View File

@@ -162,10 +162,14 @@
/gl_anytreehash_list2.h
/gl_array_list.c
/gl_array_list.h
/gl_hash_map.c
/gl_hash_map.h
/gl_linked_list.c
/gl_linked_list.h
/gl_list.c
/gl_list.h
/gl_map.c
/gl_map.h
/gl_oset.c
/gl_oset.h
/gl_rbtree_ordered.h
@@ -175,6 +179,8 @@
/gl_rbtreehash_list.h
/gl_xlist.c
/gl_xlist.h
/gl_xmap.c
/gl_xmap.h
/gnulib.mk
/hard-locale.c
/hard-locale.h