Coverage Report

Created: 2024-09-08 06:23

/src/git/hashmap.h
Line
Count
Source (jump to first uncovered line)
1
#ifndef HASHMAP_H
2
#define HASHMAP_H
3
4
/*
5
 * Generic implementation of hash-based key-value mappings.
6
 *
7
 * An example that maps long to a string:
8
 * For the sake of the example this allows to lookup exact values, too
9
 * (i.e. it is operated as a set, the value is part of the key)
10
 * -------------------------------------
11
 *
12
 * struct hashmap map;
13
 * struct long2string {
14
 *     struct hashmap_entry ent;
15
 *     long key;
16
 *     char value[FLEX_ARRAY];   // be careful with allocating on stack!
17
 * };
18
 *
19
 * #define COMPARE_VALUE 1
20
 *
21
 * static int long2string_cmp(const void *hashmap_cmp_fn_data,
22
 *                            const struct hashmap_entry *eptr,
23
 *                            const struct hashmap_entry *entry_or_key,
24
 *                            const void *keydata)
25
 * {
26
 *     const char *string = keydata;
27
 *     unsigned flags = *(unsigned *)hashmap_cmp_fn_data;
28
 *     const struct long2string *e1, *e2;
29
 *
30
 *     e1 = container_of(eptr, const struct long2string, ent);
31
 *     e2 = container_of(entry_or_key, const struct long2string, ent);
32
 *
33
 *     if (flags & COMPARE_VALUE)
34
 *         return e1->key != e2->key ||
35
 *                  strcmp(e1->value, string ? string : e2->value);
36
 *     else
37
 *         return e1->key != e2->key;
38
 * }
39
 *
40
 * int main(int argc, char **argv)
41
 * {
42
 *     long key;
43
 *     char value[255], action[32];
44
 *     unsigned flags = 0;
45
 *
46
 *     hashmap_init(&map, long2string_cmp, &flags, 0);
47
 *
48
 *     while (scanf("%s %ld %s", action, &key, value)) {
49
 *
50
 *         if (!strcmp("add", action)) {
51
 *             struct long2string *e;
52
 *             FLEX_ALLOC_STR(e, value, value);
53
 *             hashmap_entry_init(&e->ent, memhash(&key, sizeof(long)));
54
 *             e->key = key;
55
 *             hashmap_add(&map, &e->ent);
56
 *         }
57
 *
58
 *         if (!strcmp("print_all_by_key", action)) {
59
 *             struct long2string k, *e;
60
 *             hashmap_entry_init(&k.ent, memhash(&key, sizeof(long)));
61
 *             k.key = key;
62
 *
63
 *             flags &= ~COMPARE_VALUE;
64
 *             e = hashmap_get_entry(&map, &k, ent, NULL);
65
 *             if (e) {
66
 *                 printf("first: %ld %s\n", e->key, e->value);
67
 *                 while ((e = hashmap_get_next_entry(&map, e,
68
 *                                              struct long2string, ent))) {
69
 *                     printf("found more: %ld %s\n", e->key, e->value);
70
 *                 }
71
 *             }
72
 *         }
73
 *
74
 *         if (!strcmp("has_exact_match", action)) {
75
 *             struct long2string *e;
76
 *             FLEX_ALLOC_STR(e, value, value);
77
 *             hashmap_entry_init(&e->ent, memhash(&key, sizeof(long)));
78
 *             e->key = key;
79
 *
80
 *             flags |= COMPARE_VALUE;
81
 *             printf("%sfound\n",
82
 *                    hashmap_get(&map, &e->ent, NULL) ? "" : "not ");
83
 *             free(e);
84
 *         }
85
 *
86
 *         if (!strcmp("has_exact_match_no_heap_alloc", action)) {
87
 *             struct long2string k;
88
 *             hashmap_entry_init(&k.ent, memhash(&key, sizeof(long)));
89
 *             k.key = key;
90
 *
91
 *             flags |= COMPARE_VALUE;
92
 *             printf("%sfound\n",
93
 *                    hashmap_get(&map, &k.ent, value) ? "" : "not ");
94
 *         }
95
 *
96
 *         if (!strcmp("end", action)) {
97
 *             hashmap_clear_and_free(&map, struct long2string, ent);
98
 *             break;
99
 *         }
100
 *     }
101
 *
102
 *     return 0;
103
 * }
104
 */
105
106
/*
107
 * Ready-to-use hash functions for strings, using the FNV-1 algorithm (see
108
 * http://www.isthe.com/chongo/tech/comp/fnv).
109
 * `strhash` and `strihash` take 0-terminated strings, while `memhash` and
110
 * `memihash` operate on arbitrary-length memory.
111
 * `strihash` and `memihash` are case insensitive versions.
112
 * `memihash_cont` is a variant of `memihash` that allows a computation to be
113
 * continued with another chunk of data.
114
 */
115
unsigned int strhash(const char *buf);
116
unsigned int strihash(const char *buf);
117
unsigned int memhash(const void *buf, size_t len);
118
unsigned int memihash(const void *buf, size_t len);
119
unsigned int memihash_cont(unsigned int hash_seed, const void *buf, size_t len);
120
121
/*
122
 * struct hashmap_entry is an opaque structure representing an entry in the
123
 * hash table.
124
 * Ideally it should be followed by an int-sized member to prevent unused
125
 * memory on 64-bit systems due to alignment.
126
 */
127
struct hashmap_entry {
128
  /*
129
   * next points to the next entry in case of collisions (i.e. if
130
   * multiple entries map to the same bucket)
131
   */
132
  struct hashmap_entry *next;
133
134
  /* entry's hash code */
135
  unsigned int hash;
136
};
137
138
/*
139
 * User-supplied function to test two hashmap entries for equality. Shall
140
 * return 0 if the entries are equal.
141
 *
142
 * This function is always called with non-NULL `entry` and `entry_or_key`
143
 * parameters that have the same hash code.
144
 *
145
 * When looking up an entry, the `key` and `keydata` parameters to hashmap_get
146
 * and hashmap_remove are always passed as second `entry_or_key` and third
147
 * argument `keydata`, respectively. Otherwise, `keydata` is NULL.
148
 *
149
 * When it is too expensive to allocate a user entry (either because it is
150
 * large or variable sized, such that it is not on the stack), then the
151
 * relevant data to check for equality should be passed via `keydata`.
152
 * In this case `key` can be a stripped down version of the user key data
153
 * or even just a hashmap_entry having the correct hash.
154
 *
155
 * The `hashmap_cmp_fn_data` entry is the pointer given in the init function.
156
 */
157
typedef int (*hashmap_cmp_fn)(const void *hashmap_cmp_fn_data,
158
            const struct hashmap_entry *entry,
159
            const struct hashmap_entry *entry_or_key,
160
            const void *keydata);
161
162
/*
163
 * struct hashmap is the hash table structure. Members can be used as follows,
164
 * but should not be modified directly.
165
 */
166
struct hashmap {
167
  struct hashmap_entry **table;
168
169
  /* Stores the comparison function specified in `hashmap_init()`. */
170
  hashmap_cmp_fn cmpfn;
171
  const void *cmpfn_data;
172
173
  /* total number of entries (0 means the hashmap is empty) */
174
  unsigned int private_size; /* use hashmap_get_size() */
175
176
  /*
177
   * tablesize is the allocated size of the hash table. A non-0 value
178
   * indicates that the hashmap is initialized. It may also be useful
179
   * for statistical purposes (i.e. `size / tablesize` is the current
180
   * load factor).
181
   */
182
  unsigned int tablesize;
183
184
  unsigned int grow_at;
185
  unsigned int shrink_at;
186
187
  unsigned int do_count_items : 1;
188
};
189
190
/* hashmap functions */
191
192
0
#define HASHMAP_INIT(fn, data) { .cmpfn = fn, .cmpfn_data = data, \
193
0
         .do_count_items = 1 }
194
195
/*
196
 * Initializes a hashmap structure.
197
 *
198
 * `map` is the hashmap to initialize.
199
 *
200
 * The `equals_function` can be specified to compare two entries for equality.
201
 * If NULL, entries are considered equal if their hash codes are equal.
202
 *
203
 * The `equals_function_data` parameter can be used to provide additional data
204
 * (a callback cookie) that will be passed to `equals_function` each time it
205
 * is called. This allows a single `equals_function` to implement multiple
206
 * comparison functions.
207
 *
208
 * If the total number of entries is known in advance, the `initial_size`
209
 * parameter may be used to preallocate a sufficiently large table and thus
210
 * prevent expensive resizing. If 0, the table is dynamically resized.
211
 */
212
void hashmap_init(struct hashmap *map,
213
      hashmap_cmp_fn equals_function,
214
      const void *equals_function_data,
215
      size_t initial_size);
216
217
/* internal functions for clearing or freeing hashmap */
218
void hashmap_partial_clear_(struct hashmap *map, ssize_t offset);
219
void hashmap_clear_(struct hashmap *map, ssize_t offset);
220
221
/*
222
 * Frees a hashmap structure and allocated memory for the table, but does not
223
 * free the entries nor anything they point to.
224
 *
225
 * Usage note:
226
 *
227
 * Many callers will need to iterate over all entries and free the data each
228
 * entry points to; in such a case, they can free the entry itself while at it.
229
 * Thus, you might see:
230
 *
231
 *    hashmap_for_each_entry(map, hashmap_iter, e, hashmap_entry_name) {
232
 *      free(e->somefield);
233
 *      free(e);
234
 *    }
235
 *    hashmap_clear(map);
236
 *
237
 * instead of
238
 *
239
 *    hashmap_for_each_entry(map, hashmap_iter, e, hashmap_entry_name) {
240
 *      free(e->somefield);
241
 *    }
242
 *    hashmap_clear_and_free(map, struct my_entry_struct, hashmap_entry_name);
243
 *
244
 * to avoid the implicit extra loop over the entries.  However, if there are
245
 * no special fields in your entry that need to be freed beyond the entry
246
 * itself, it is probably simpler to avoid the explicit loop and just call
247
 * hashmap_clear_and_free().
248
 */
249
0
#define hashmap_clear(map) hashmap_clear_(map, -1)
250
251
/*
252
 * Similar to hashmap_clear(), except that the table is not deallocated; it
253
 * is merely zeroed out but left the same size as before.  If the hashmap
254
 * will be reused, this avoids the overhead of deallocating and
255
 * reallocating map->table.  As with hashmap_clear(), you may need to free
256
 * the entries yourself before calling this function.
257
 */
258
0
#define hashmap_partial_clear(map) hashmap_partial_clear_(map, -1)
259
260
/*
261
 * Similar to hashmap_clear() but also frees all entries.  @type is the
262
 * struct type of the entry where @member is the hashmap_entry struct used
263
 * to associate with @map.
264
 *
265
 * See usage note above hashmap_clear().
266
 */
267
#define hashmap_clear_and_free(map, type, member) \
268
0
  hashmap_clear_(map, offsetof(type, member))
269
270
/*
271
 * Similar to hashmap_partial_clear() but also frees all entries.  @type is
272
 * the struct type of the entry where @member is the hashmap_entry struct
273
 * used to associate with @map.
274
 *
275
 * See usage note above hashmap_clear().
276
 */
277
#define hashmap_partial_clear_and_free(map, type, member) \
278
  hashmap_partial_clear_(map, offsetof(type, member))
279
280
/* hashmap_entry functions */
281
282
/*
283
 * Initializes a hashmap_entry structure.
284
 *
285
 * `entry` points to the entry to initialize.
286
 * `hash` is the hash code of the entry.
287
 *
288
 * The hashmap_entry structure does not hold references to external resources,
289
 * and it is safe to just discard it once you are done with it (i.e. if
290
 * your structure was allocated with xmalloc(), you can just free(3) it,
291
 * and if it is on stack, you can just let it go out of scope).
292
 */
293
static inline void hashmap_entry_init(struct hashmap_entry *e,
294
              unsigned int hash)
295
0
{
296
0
  e->hash = hash;
297
0
  e->next = NULL;
298
0
}
Unexecuted instantiation: add.c:hashmap_entry_init
Unexecuted instantiation: am.c:hashmap_entry_init
Unexecuted instantiation: apply.c:hashmap_entry_init
Unexecuted instantiation: archive.c:hashmap_entry_init
Unexecuted instantiation: bisect.c:hashmap_entry_init
Unexecuted instantiation: blame.c:hashmap_entry_init
Unexecuted instantiation: branch.c:hashmap_entry_init
Unexecuted instantiation: bugreport.c:hashmap_entry_init
Unexecuted instantiation: bundle.c:hashmap_entry_init
Unexecuted instantiation: cat-file.c:hashmap_entry_init
Unexecuted instantiation: check-attr.c:hashmap_entry_init
Unexecuted instantiation: check-ignore.c:hashmap_entry_init
Unexecuted instantiation: check-mailmap.c:hashmap_entry_init
Unexecuted instantiation: check-ref-format.c:hashmap_entry_init
Unexecuted instantiation: checkout--worker.c:hashmap_entry_init
Unexecuted instantiation: checkout-index.c:hashmap_entry_init
Unexecuted instantiation: checkout.c:hashmap_entry_init
Unexecuted instantiation: clean.c:hashmap_entry_init
Unexecuted instantiation: clone.c:hashmap_entry_init
Unexecuted instantiation: column.c:hashmap_entry_init
Unexecuted instantiation: commit-graph.c:hashmap_entry_init
Unexecuted instantiation: commit-tree.c:hashmap_entry_init
Unexecuted instantiation: commit.c:hashmap_entry_init
Unexecuted instantiation: config.c:hashmap_entry_init
Unexecuted instantiation: count-objects.c:hashmap_entry_init
Unexecuted instantiation: credential-cache--daemon.c:hashmap_entry_init
Unexecuted instantiation: credential-cache.c:hashmap_entry_init
Unexecuted instantiation: credential-store.c:hashmap_entry_init
Unexecuted instantiation: credential.c:hashmap_entry_init
Unexecuted instantiation: describe.c:hashmap_entry_init
Unexecuted instantiation: diagnose.c:hashmap_entry_init
Unexecuted instantiation: diff-files.c:hashmap_entry_init
Unexecuted instantiation: diff-index.c:hashmap_entry_init
Unexecuted instantiation: diff-tree.c:hashmap_entry_init
Unexecuted instantiation: diff.c:hashmap_entry_init
Unexecuted instantiation: difftool.c:hashmap_entry_init
Unexecuted instantiation: fast-export.c:hashmap_entry_init
Unexecuted instantiation: fast-import.c:hashmap_entry_init
Unexecuted instantiation: fetch-pack.c:hashmap_entry_init
Unexecuted instantiation: fetch.c:hashmap_entry_init
Unexecuted instantiation: fmt-merge-msg.c:hashmap_entry_init
Unexecuted instantiation: for-each-ref.c:hashmap_entry_init
Unexecuted instantiation: for-each-repo.c:hashmap_entry_init
Unexecuted instantiation: fsck.c:hashmap_entry_init
Unexecuted instantiation: fsmonitor--daemon.c:hashmap_entry_init
Unexecuted instantiation: gc.c:hashmap_entry_init
Unexecuted instantiation: get-tar-commit-id.c:hashmap_entry_init
Unexecuted instantiation: grep.c:hashmap_entry_init
Unexecuted instantiation: hash-object.c:hashmap_entry_init
Unexecuted instantiation: help.c:hashmap_entry_init
Unexecuted instantiation: hook.c:hashmap_entry_init
Unexecuted instantiation: index-pack.c:hashmap_entry_init
Unexecuted instantiation: init-db.c:hashmap_entry_init
Unexecuted instantiation: interpret-trailers.c:hashmap_entry_init
Unexecuted instantiation: log.c:hashmap_entry_init
Unexecuted instantiation: ls-files.c:hashmap_entry_init
Unexecuted instantiation: ls-remote.c:hashmap_entry_init
Unexecuted instantiation: ls-tree.c:hashmap_entry_init
Unexecuted instantiation: merge-base.c:hashmap_entry_init
Unexecuted instantiation: merge-file.c:hashmap_entry_init
Unexecuted instantiation: merge-index.c:hashmap_entry_init
Unexecuted instantiation: merge-ours.c:hashmap_entry_init
Unexecuted instantiation: merge-recursive.c:hashmap_entry_init
Unexecuted instantiation: merge-tree.c:hashmap_entry_init
Unexecuted instantiation: merge.c:hashmap_entry_init
Unexecuted instantiation: mktag.c:hashmap_entry_init
Unexecuted instantiation: mktree.c:hashmap_entry_init
Unexecuted instantiation: multi-pack-index.c:hashmap_entry_init
Unexecuted instantiation: mv.c:hashmap_entry_init
Unexecuted instantiation: name-rev.c:hashmap_entry_init
Unexecuted instantiation: notes.c:hashmap_entry_init
Unexecuted instantiation: pack-objects.c:hashmap_entry_init
Unexecuted instantiation: pack-redundant.c:hashmap_entry_init
Unexecuted instantiation: pack-refs.c:hashmap_entry_init
Unexecuted instantiation: patch-id.c:hashmap_entry_init
Unexecuted instantiation: prune.c:hashmap_entry_init
Unexecuted instantiation: pull.c:hashmap_entry_init
Unexecuted instantiation: push.c:hashmap_entry_init
Unexecuted instantiation: range-diff.c:hashmap_entry_init
Unexecuted instantiation: read-tree.c:hashmap_entry_init
Unexecuted instantiation: rebase.c:hashmap_entry_init
Unexecuted instantiation: receive-pack.c:hashmap_entry_init
Unexecuted instantiation: reflog.c:hashmap_entry_init
Unexecuted instantiation: refs.c:hashmap_entry_init
Unexecuted instantiation: remote-ext.c:hashmap_entry_init
Unexecuted instantiation: remote-fd.c:hashmap_entry_init
Unexecuted instantiation: remote.c:hashmap_entry_init
Unexecuted instantiation: repack.c:hashmap_entry_init
Unexecuted instantiation: replace.c:hashmap_entry_init
Unexecuted instantiation: replay.c:hashmap_entry_init
Unexecuted instantiation: rerere.c:hashmap_entry_init
Unexecuted instantiation: reset.c:hashmap_entry_init
Unexecuted instantiation: rev-list.c:hashmap_entry_init
Unexecuted instantiation: rev-parse.c:hashmap_entry_init
Unexecuted instantiation: revert.c:hashmap_entry_init
Unexecuted instantiation: rm.c:hashmap_entry_init
Unexecuted instantiation: send-pack.c:hashmap_entry_init
Unexecuted instantiation: shortlog.c:hashmap_entry_init
Unexecuted instantiation: show-branch.c:hashmap_entry_init
Unexecuted instantiation: show-index.c:hashmap_entry_init
Unexecuted instantiation: show-ref.c:hashmap_entry_init
Unexecuted instantiation: sparse-checkout.c:hashmap_entry_init
Unexecuted instantiation: stash.c:hashmap_entry_init
Unexecuted instantiation: stripspace.c:hashmap_entry_init
Unexecuted instantiation: submodule--helper.c:hashmap_entry_init
Unexecuted instantiation: symbolic-ref.c:hashmap_entry_init
Unexecuted instantiation: tag.c:hashmap_entry_init
Unexecuted instantiation: unpack-file.c:hashmap_entry_init
Unexecuted instantiation: unpack-objects.c:hashmap_entry_init
Unexecuted instantiation: update-index.c:hashmap_entry_init
Unexecuted instantiation: update-ref.c:hashmap_entry_init
Unexecuted instantiation: update-server-info.c:hashmap_entry_init
Unexecuted instantiation: upload-archive.c:hashmap_entry_init
Unexecuted instantiation: upload-pack.c:hashmap_entry_init
Unexecuted instantiation: var.c:hashmap_entry_init
Unexecuted instantiation: verify-commit.c:hashmap_entry_init
Unexecuted instantiation: verify-pack.c:hashmap_entry_init
Unexecuted instantiation: verify-tag.c:hashmap_entry_init
Unexecuted instantiation: worktree.c:hashmap_entry_init
Unexecuted instantiation: write-tree.c:hashmap_entry_init
Unexecuted instantiation: git.c:hashmap_entry_init
Unexecuted instantiation: add-interactive.c:hashmap_entry_init
Unexecuted instantiation: add-patch.c:hashmap_entry_init
Unexecuted instantiation: advice.c:hashmap_entry_init
Unexecuted instantiation: alias.c:hashmap_entry_init
Unexecuted instantiation: attr.c:hashmap_entry_init
Unexecuted instantiation: bloom.c:hashmap_entry_init
Unexecuted instantiation: bulk-checkin.c:hashmap_entry_init
Unexecuted instantiation: bundle-uri.c:hashmap_entry_init
Unexecuted instantiation: cache-tree.c:hashmap_entry_init
Unexecuted instantiation: color.c:hashmap_entry_init
Unexecuted instantiation: combine-diff.c:hashmap_entry_init
Unexecuted instantiation: commit-reach.c:hashmap_entry_init
Unexecuted instantiation: terminal.c:hashmap_entry_init
Unexecuted instantiation: connect.c:hashmap_entry_init
Unexecuted instantiation: connected.c:hashmap_entry_init
Unexecuted instantiation: convert.c:hashmap_entry_init
Unexecuted instantiation: csum-file.c:hashmap_entry_init
Unexecuted instantiation: delta-islands.c:hashmap_entry_init
Unexecuted instantiation: diff-lib.c:hashmap_entry_init
Unexecuted instantiation: diff-no-index.c:hashmap_entry_init
Unexecuted instantiation: diffcore-break.c:hashmap_entry_init
Unexecuted instantiation: diffcore-rename.c:hashmap_entry_init
Unexecuted instantiation: dir-iterator.c:hashmap_entry_init
Unexecuted instantiation: dir.c:hashmap_entry_init
Unexecuted instantiation: editor.c:hashmap_entry_init
Unexecuted instantiation: entry.c:hashmap_entry_init
Unexecuted instantiation: environment.c:hashmap_entry_init
Unexecuted instantiation: fsmonitor.c:hashmap_entry_init
Unexecuted instantiation: fsmonitor-ipc.c:hashmap_entry_init
Unexecuted instantiation: fsmonitor-settings.c:hashmap_entry_init
Unexecuted instantiation: gpg-interface.c:hashmap_entry_init
Unexecuted instantiation: graph.c:hashmap_entry_init
Unexecuted instantiation: hash-lookup.c:hashmap_entry_init
Unexecuted instantiation: hashmap.c:hashmap_entry_init
Unexecuted instantiation: hex.c:hashmap_entry_init
Unexecuted instantiation: ident.c:hashmap_entry_init
Unexecuted instantiation: line-log.c:hashmap_entry_init
Unexecuted instantiation: list-objects-filter-options.c:hashmap_entry_init
Unexecuted instantiation: list-objects.c:hashmap_entry_init
Unexecuted instantiation: log-tree.c:hashmap_entry_init
Unexecuted instantiation: mailinfo.c:hashmap_entry_init
Unexecuted instantiation: mailmap.c:hashmap_entry_init
Unexecuted instantiation: merge-blobs.c:hashmap_entry_init
Unexecuted instantiation: merge-ll.c:hashmap_entry_init
Unexecuted instantiation: merge-ort.c:hashmap_entry_init
Unexecuted instantiation: merge-ort-wrappers.c:hashmap_entry_init
Unexecuted instantiation: midx.c:hashmap_entry_init
Unexecuted instantiation: midx-write.c:hashmap_entry_init
Unexecuted instantiation: name-hash.c:hashmap_entry_init
Unexecuted instantiation: notes-cache.c:hashmap_entry_init
Unexecuted instantiation: notes-merge.c:hashmap_entry_init
Unexecuted instantiation: notes-utils.c:hashmap_entry_init
Unexecuted instantiation: object-file-convert.c:hashmap_entry_init
Unexecuted instantiation: object-file.c:hashmap_entry_init
Unexecuted instantiation: object-name.c:hashmap_entry_init
Unexecuted instantiation: object.c:hashmap_entry_init
Unexecuted instantiation: oid-array.c:hashmap_entry_init
Unexecuted instantiation: oidmap.c:hashmap_entry_init
Unexecuted instantiation: pack-bitmap-write.c:hashmap_entry_init
Unexecuted instantiation: pack-bitmap.c:hashmap_entry_init
Unexecuted instantiation: pack-check.c:hashmap_entry_init
Unexecuted instantiation: pack-mtimes.c:hashmap_entry_init
Unexecuted instantiation: pack-revindex.c:hashmap_entry_init
Unexecuted instantiation: pack-write.c:hashmap_entry_init
Unexecuted instantiation: packfile.c:hashmap_entry_init
Unexecuted instantiation: pager.c:hashmap_entry_init
Unexecuted instantiation: parallel-checkout.c:hashmap_entry_init
Unexecuted instantiation: parse-options-cb.c:hashmap_entry_init
Unexecuted instantiation: patch-ids.c:hashmap_entry_init
Unexecuted instantiation: path.c:hashmap_entry_init
Unexecuted instantiation: pathspec.c:hashmap_entry_init
Unexecuted instantiation: preload-index.c:hashmap_entry_init
Unexecuted instantiation: pretty.c:hashmap_entry_init
Unexecuted instantiation: progress.c:hashmap_entry_init
Unexecuted instantiation: promisor-remote.c:hashmap_entry_init
Unexecuted instantiation: protocol.c:hashmap_entry_init
Unexecuted instantiation: prune-packed.c:hashmap_entry_init
Unexecuted instantiation: pseudo-merge.c:hashmap_entry_init
Unexecuted instantiation: reachable.c:hashmap_entry_init
Unexecuted instantiation: read-cache.c:hashmap_entry_init
Unexecuted instantiation: rebase-interactive.c:hashmap_entry_init
Unexecuted instantiation: ref-filter.c:hashmap_entry_init
Unexecuted instantiation: reflog-walk.c:hashmap_entry_init
Unexecuted instantiation: debug.c:hashmap_entry_init
Unexecuted instantiation: files-backend.c:hashmap_entry_init
Unexecuted instantiation: reftable-backend.c:hashmap_entry_init
Unexecuted instantiation: iterator.c:hashmap_entry_init
Unexecuted instantiation: packed-backend.c:hashmap_entry_init
Unexecuted instantiation: ref-cache.c:hashmap_entry_init
Unexecuted instantiation: refspec.c:hashmap_entry_init
Unexecuted instantiation: replace-object.c:hashmap_entry_init
Unexecuted instantiation: repo-settings.c:hashmap_entry_init
Unexecuted instantiation: repository.c:hashmap_entry_init
Unexecuted instantiation: resolve-undo.c:hashmap_entry_init
Unexecuted instantiation: revision.c:hashmap_entry_init
Unexecuted instantiation: run-command.c:hashmap_entry_init
Unexecuted instantiation: sequencer.c:hashmap_entry_init
Unexecuted instantiation: serve.c:hashmap_entry_init
Unexecuted instantiation: server-info.c:hashmap_entry_init
Unexecuted instantiation: setup.c:hashmap_entry_init
Unexecuted instantiation: shallow.c:hashmap_entry_init
Unexecuted instantiation: sideband.c:hashmap_entry_init
Unexecuted instantiation: sparse-index.c:hashmap_entry_init
Unexecuted instantiation: split-index.c:hashmap_entry_init
Unexecuted instantiation: streaming.c:hashmap_entry_init
Unexecuted instantiation: strmap.c:hashmap_entry_init
Unexecuted instantiation: sub-process.c:hashmap_entry_init
Unexecuted instantiation: submodule-config.c:hashmap_entry_init
Unexecuted instantiation: submodule.c:hashmap_entry_init
Unexecuted instantiation: symlinks.c:hashmap_entry_init
Unexecuted instantiation: tmp-objdir.c:hashmap_entry_init
Unexecuted instantiation: trace.c:hashmap_entry_init
Unexecuted instantiation: trace2.c:hashmap_entry_init
Unexecuted instantiation: tr2_cfg.c:hashmap_entry_init
Unexecuted instantiation: tr2_sysenv.c:hashmap_entry_init
Unexecuted instantiation: tr2_tgt_event.c:hashmap_entry_init
Unexecuted instantiation: tr2_tgt_normal.c:hashmap_entry_init
Unexecuted instantiation: tr2_tgt_perf.c:hashmap_entry_init
Unexecuted instantiation: trailer.c:hashmap_entry_init
Unexecuted instantiation: transport-helper.c:hashmap_entry_init
Unexecuted instantiation: transport.c:hashmap_entry_init
Unexecuted instantiation: tree-diff.c:hashmap_entry_init
Unexecuted instantiation: tree-walk.c:hashmap_entry_init
Unexecuted instantiation: tree.c:hashmap_entry_init
Unexecuted instantiation: unpack-trees.c:hashmap_entry_init
Unexecuted instantiation: urlmatch.c:hashmap_entry_init
Unexecuted instantiation: userdiff.c:hashmap_entry_init
Unexecuted instantiation: versioncmp.c:hashmap_entry_init
Unexecuted instantiation: wt-status.c:hashmap_entry_init
Unexecuted instantiation: xdiff-interface.c:hashmap_entry_init
Unexecuted instantiation: alloc.c:hashmap_entry_init
Unexecuted instantiation: archive-tar.c:hashmap_entry_init
Unexecuted instantiation: archive-zip.c:hashmap_entry_init
Unexecuted instantiation: chunk-format.c:hashmap_entry_init
Unexecuted instantiation: fetch-negotiator.c:hashmap_entry_init
Unexecuted instantiation: list-objects-filter.c:hashmap_entry_init
Unexecuted instantiation: loose.c:hashmap_entry_init
Unexecuted instantiation: ls-refs.c:hashmap_entry_init
Unexecuted instantiation: match-trees.c:hashmap_entry_init
Unexecuted instantiation: default.c:hashmap_entry_init
Unexecuted instantiation: skipping.c:hashmap_entry_init
Unexecuted instantiation: protocol-caps.c:hashmap_entry_init
Unexecuted instantiation: error.c:hashmap_entry_init
Unexecuted instantiation: iter.c:hashmap_entry_init
Unexecuted instantiation: publicbasics.c:hashmap_entry_init
Unexecuted instantiation: reader.c:hashmap_entry_init
Unexecuted instantiation: record.c:hashmap_entry_init
Unexecuted instantiation: stack.c:hashmap_entry_init
Unexecuted instantiation: writer.c:hashmap_entry_init
Unexecuted instantiation: basics.c:hashmap_entry_init
Unexecuted instantiation: block.c:hashmap_entry_init
Unexecuted instantiation: blocksource.c:hashmap_entry_init
Unexecuted instantiation: merged.c:hashmap_entry_init
Unexecuted instantiation: pq.c:hashmap_entry_init
Unexecuted instantiation: common-main.c:hashmap_entry_init
299
300
/*
301
 * Return the number of items in the map.
302
 */
303
static inline unsigned int hashmap_get_size(struct hashmap *map)
304
0
{
305
0
  if (map->do_count_items)
306
0
    return map->private_size;
307
308
0
  BUG("hashmap_get_size: size not set");
309
0
  return 0;
310
0
}
Unexecuted instantiation: add.c:hashmap_get_size
Unexecuted instantiation: am.c:hashmap_get_size
Unexecuted instantiation: apply.c:hashmap_get_size
Unexecuted instantiation: archive.c:hashmap_get_size
Unexecuted instantiation: bisect.c:hashmap_get_size
Unexecuted instantiation: blame.c:hashmap_get_size
Unexecuted instantiation: branch.c:hashmap_get_size
Unexecuted instantiation: bugreport.c:hashmap_get_size
Unexecuted instantiation: bundle.c:hashmap_get_size
Unexecuted instantiation: cat-file.c:hashmap_get_size
Unexecuted instantiation: check-attr.c:hashmap_get_size
Unexecuted instantiation: check-ignore.c:hashmap_get_size
Unexecuted instantiation: check-mailmap.c:hashmap_get_size
Unexecuted instantiation: check-ref-format.c:hashmap_get_size
Unexecuted instantiation: checkout--worker.c:hashmap_get_size
Unexecuted instantiation: checkout-index.c:hashmap_get_size
Unexecuted instantiation: checkout.c:hashmap_get_size
Unexecuted instantiation: clean.c:hashmap_get_size
Unexecuted instantiation: clone.c:hashmap_get_size
Unexecuted instantiation: column.c:hashmap_get_size
Unexecuted instantiation: commit-graph.c:hashmap_get_size
Unexecuted instantiation: commit-tree.c:hashmap_get_size
Unexecuted instantiation: commit.c:hashmap_get_size
Unexecuted instantiation: config.c:hashmap_get_size
Unexecuted instantiation: count-objects.c:hashmap_get_size
Unexecuted instantiation: credential-cache--daemon.c:hashmap_get_size
Unexecuted instantiation: credential-cache.c:hashmap_get_size
Unexecuted instantiation: credential-store.c:hashmap_get_size
Unexecuted instantiation: credential.c:hashmap_get_size
Unexecuted instantiation: describe.c:hashmap_get_size
Unexecuted instantiation: diagnose.c:hashmap_get_size
Unexecuted instantiation: diff-files.c:hashmap_get_size
Unexecuted instantiation: diff-index.c:hashmap_get_size
Unexecuted instantiation: diff-tree.c:hashmap_get_size
Unexecuted instantiation: diff.c:hashmap_get_size
Unexecuted instantiation: difftool.c:hashmap_get_size
Unexecuted instantiation: fast-export.c:hashmap_get_size
Unexecuted instantiation: fast-import.c:hashmap_get_size
Unexecuted instantiation: fetch-pack.c:hashmap_get_size
Unexecuted instantiation: fetch.c:hashmap_get_size
Unexecuted instantiation: fmt-merge-msg.c:hashmap_get_size
Unexecuted instantiation: for-each-ref.c:hashmap_get_size
Unexecuted instantiation: for-each-repo.c:hashmap_get_size
Unexecuted instantiation: fsck.c:hashmap_get_size
Unexecuted instantiation: fsmonitor--daemon.c:hashmap_get_size
Unexecuted instantiation: gc.c:hashmap_get_size
Unexecuted instantiation: get-tar-commit-id.c:hashmap_get_size
Unexecuted instantiation: grep.c:hashmap_get_size
Unexecuted instantiation: hash-object.c:hashmap_get_size
Unexecuted instantiation: help.c:hashmap_get_size
Unexecuted instantiation: hook.c:hashmap_get_size
Unexecuted instantiation: index-pack.c:hashmap_get_size
Unexecuted instantiation: init-db.c:hashmap_get_size
Unexecuted instantiation: interpret-trailers.c:hashmap_get_size
Unexecuted instantiation: log.c:hashmap_get_size
Unexecuted instantiation: ls-files.c:hashmap_get_size
Unexecuted instantiation: ls-remote.c:hashmap_get_size
Unexecuted instantiation: ls-tree.c:hashmap_get_size
Unexecuted instantiation: merge-base.c:hashmap_get_size
Unexecuted instantiation: merge-file.c:hashmap_get_size
Unexecuted instantiation: merge-index.c:hashmap_get_size
Unexecuted instantiation: merge-ours.c:hashmap_get_size
Unexecuted instantiation: merge-recursive.c:hashmap_get_size
Unexecuted instantiation: merge-tree.c:hashmap_get_size
Unexecuted instantiation: merge.c:hashmap_get_size
Unexecuted instantiation: mktag.c:hashmap_get_size
Unexecuted instantiation: mktree.c:hashmap_get_size
Unexecuted instantiation: multi-pack-index.c:hashmap_get_size
Unexecuted instantiation: mv.c:hashmap_get_size
Unexecuted instantiation: name-rev.c:hashmap_get_size
Unexecuted instantiation: notes.c:hashmap_get_size
Unexecuted instantiation: pack-objects.c:hashmap_get_size
Unexecuted instantiation: pack-redundant.c:hashmap_get_size
Unexecuted instantiation: pack-refs.c:hashmap_get_size
Unexecuted instantiation: patch-id.c:hashmap_get_size
Unexecuted instantiation: prune.c:hashmap_get_size
Unexecuted instantiation: pull.c:hashmap_get_size
Unexecuted instantiation: push.c:hashmap_get_size
Unexecuted instantiation: range-diff.c:hashmap_get_size
Unexecuted instantiation: read-tree.c:hashmap_get_size
Unexecuted instantiation: rebase.c:hashmap_get_size
Unexecuted instantiation: receive-pack.c:hashmap_get_size
Unexecuted instantiation: reflog.c:hashmap_get_size
Unexecuted instantiation: refs.c:hashmap_get_size
Unexecuted instantiation: remote-ext.c:hashmap_get_size
Unexecuted instantiation: remote-fd.c:hashmap_get_size
Unexecuted instantiation: remote.c:hashmap_get_size
Unexecuted instantiation: repack.c:hashmap_get_size
Unexecuted instantiation: replace.c:hashmap_get_size
Unexecuted instantiation: replay.c:hashmap_get_size
Unexecuted instantiation: rerere.c:hashmap_get_size
Unexecuted instantiation: reset.c:hashmap_get_size
Unexecuted instantiation: rev-list.c:hashmap_get_size
Unexecuted instantiation: rev-parse.c:hashmap_get_size
Unexecuted instantiation: revert.c:hashmap_get_size
Unexecuted instantiation: rm.c:hashmap_get_size
Unexecuted instantiation: send-pack.c:hashmap_get_size
Unexecuted instantiation: shortlog.c:hashmap_get_size
Unexecuted instantiation: show-branch.c:hashmap_get_size
Unexecuted instantiation: show-index.c:hashmap_get_size
Unexecuted instantiation: show-ref.c:hashmap_get_size
Unexecuted instantiation: sparse-checkout.c:hashmap_get_size
Unexecuted instantiation: stash.c:hashmap_get_size
Unexecuted instantiation: stripspace.c:hashmap_get_size
Unexecuted instantiation: submodule--helper.c:hashmap_get_size
Unexecuted instantiation: symbolic-ref.c:hashmap_get_size
Unexecuted instantiation: tag.c:hashmap_get_size
Unexecuted instantiation: unpack-file.c:hashmap_get_size
Unexecuted instantiation: unpack-objects.c:hashmap_get_size
Unexecuted instantiation: update-index.c:hashmap_get_size
Unexecuted instantiation: update-ref.c:hashmap_get_size
Unexecuted instantiation: update-server-info.c:hashmap_get_size
Unexecuted instantiation: upload-archive.c:hashmap_get_size
Unexecuted instantiation: upload-pack.c:hashmap_get_size
Unexecuted instantiation: var.c:hashmap_get_size
Unexecuted instantiation: verify-commit.c:hashmap_get_size
Unexecuted instantiation: verify-pack.c:hashmap_get_size
Unexecuted instantiation: verify-tag.c:hashmap_get_size
Unexecuted instantiation: worktree.c:hashmap_get_size
Unexecuted instantiation: write-tree.c:hashmap_get_size
Unexecuted instantiation: git.c:hashmap_get_size
Unexecuted instantiation: add-interactive.c:hashmap_get_size
Unexecuted instantiation: add-patch.c:hashmap_get_size
Unexecuted instantiation: advice.c:hashmap_get_size
Unexecuted instantiation: alias.c:hashmap_get_size
Unexecuted instantiation: attr.c:hashmap_get_size
Unexecuted instantiation: bloom.c:hashmap_get_size
Unexecuted instantiation: bulk-checkin.c:hashmap_get_size
Unexecuted instantiation: bundle-uri.c:hashmap_get_size
Unexecuted instantiation: cache-tree.c:hashmap_get_size
Unexecuted instantiation: color.c:hashmap_get_size
Unexecuted instantiation: combine-diff.c:hashmap_get_size
Unexecuted instantiation: commit-reach.c:hashmap_get_size
Unexecuted instantiation: terminal.c:hashmap_get_size
Unexecuted instantiation: connect.c:hashmap_get_size
Unexecuted instantiation: connected.c:hashmap_get_size
Unexecuted instantiation: convert.c:hashmap_get_size
Unexecuted instantiation: csum-file.c:hashmap_get_size
Unexecuted instantiation: delta-islands.c:hashmap_get_size
Unexecuted instantiation: diff-lib.c:hashmap_get_size
Unexecuted instantiation: diff-no-index.c:hashmap_get_size
Unexecuted instantiation: diffcore-break.c:hashmap_get_size
Unexecuted instantiation: diffcore-rename.c:hashmap_get_size
Unexecuted instantiation: dir-iterator.c:hashmap_get_size
Unexecuted instantiation: dir.c:hashmap_get_size
Unexecuted instantiation: editor.c:hashmap_get_size
Unexecuted instantiation: entry.c:hashmap_get_size
Unexecuted instantiation: environment.c:hashmap_get_size
Unexecuted instantiation: fsmonitor.c:hashmap_get_size
Unexecuted instantiation: fsmonitor-ipc.c:hashmap_get_size
Unexecuted instantiation: fsmonitor-settings.c:hashmap_get_size
Unexecuted instantiation: gpg-interface.c:hashmap_get_size
Unexecuted instantiation: graph.c:hashmap_get_size
Unexecuted instantiation: hash-lookup.c:hashmap_get_size
Unexecuted instantiation: hashmap.c:hashmap_get_size
Unexecuted instantiation: hex.c:hashmap_get_size
Unexecuted instantiation: ident.c:hashmap_get_size
Unexecuted instantiation: line-log.c:hashmap_get_size
Unexecuted instantiation: list-objects-filter-options.c:hashmap_get_size
Unexecuted instantiation: list-objects.c:hashmap_get_size
Unexecuted instantiation: log-tree.c:hashmap_get_size
Unexecuted instantiation: mailinfo.c:hashmap_get_size
Unexecuted instantiation: mailmap.c:hashmap_get_size
Unexecuted instantiation: merge-blobs.c:hashmap_get_size
Unexecuted instantiation: merge-ll.c:hashmap_get_size
Unexecuted instantiation: merge-ort.c:hashmap_get_size
Unexecuted instantiation: merge-ort-wrappers.c:hashmap_get_size
Unexecuted instantiation: midx.c:hashmap_get_size
Unexecuted instantiation: midx-write.c:hashmap_get_size
Unexecuted instantiation: name-hash.c:hashmap_get_size
Unexecuted instantiation: notes-cache.c:hashmap_get_size
Unexecuted instantiation: notes-merge.c:hashmap_get_size
Unexecuted instantiation: notes-utils.c:hashmap_get_size
Unexecuted instantiation: object-file-convert.c:hashmap_get_size
Unexecuted instantiation: object-file.c:hashmap_get_size
Unexecuted instantiation: object-name.c:hashmap_get_size
Unexecuted instantiation: object.c:hashmap_get_size
Unexecuted instantiation: oid-array.c:hashmap_get_size
Unexecuted instantiation: oidmap.c:hashmap_get_size
Unexecuted instantiation: pack-bitmap-write.c:hashmap_get_size
Unexecuted instantiation: pack-bitmap.c:hashmap_get_size
Unexecuted instantiation: pack-check.c:hashmap_get_size
Unexecuted instantiation: pack-mtimes.c:hashmap_get_size
Unexecuted instantiation: pack-revindex.c:hashmap_get_size
Unexecuted instantiation: pack-write.c:hashmap_get_size
Unexecuted instantiation: packfile.c:hashmap_get_size
Unexecuted instantiation: pager.c:hashmap_get_size
Unexecuted instantiation: parallel-checkout.c:hashmap_get_size
Unexecuted instantiation: parse-options-cb.c:hashmap_get_size
Unexecuted instantiation: patch-ids.c:hashmap_get_size
Unexecuted instantiation: path.c:hashmap_get_size
Unexecuted instantiation: pathspec.c:hashmap_get_size
Unexecuted instantiation: preload-index.c:hashmap_get_size
Unexecuted instantiation: pretty.c:hashmap_get_size
Unexecuted instantiation: progress.c:hashmap_get_size
Unexecuted instantiation: promisor-remote.c:hashmap_get_size
Unexecuted instantiation: protocol.c:hashmap_get_size
Unexecuted instantiation: prune-packed.c:hashmap_get_size
Unexecuted instantiation: pseudo-merge.c:hashmap_get_size
Unexecuted instantiation: reachable.c:hashmap_get_size
Unexecuted instantiation: read-cache.c:hashmap_get_size
Unexecuted instantiation: rebase-interactive.c:hashmap_get_size
Unexecuted instantiation: ref-filter.c:hashmap_get_size
Unexecuted instantiation: reflog-walk.c:hashmap_get_size
Unexecuted instantiation: debug.c:hashmap_get_size
Unexecuted instantiation: files-backend.c:hashmap_get_size
Unexecuted instantiation: reftable-backend.c:hashmap_get_size
Unexecuted instantiation: iterator.c:hashmap_get_size
Unexecuted instantiation: packed-backend.c:hashmap_get_size
Unexecuted instantiation: ref-cache.c:hashmap_get_size
Unexecuted instantiation: refspec.c:hashmap_get_size
Unexecuted instantiation: replace-object.c:hashmap_get_size
Unexecuted instantiation: repo-settings.c:hashmap_get_size
Unexecuted instantiation: repository.c:hashmap_get_size
Unexecuted instantiation: resolve-undo.c:hashmap_get_size
Unexecuted instantiation: revision.c:hashmap_get_size
Unexecuted instantiation: run-command.c:hashmap_get_size
Unexecuted instantiation: sequencer.c:hashmap_get_size
Unexecuted instantiation: serve.c:hashmap_get_size
Unexecuted instantiation: server-info.c:hashmap_get_size
Unexecuted instantiation: setup.c:hashmap_get_size
Unexecuted instantiation: shallow.c:hashmap_get_size
Unexecuted instantiation: sideband.c:hashmap_get_size
Unexecuted instantiation: sparse-index.c:hashmap_get_size
Unexecuted instantiation: split-index.c:hashmap_get_size
Unexecuted instantiation: streaming.c:hashmap_get_size
Unexecuted instantiation: strmap.c:hashmap_get_size
Unexecuted instantiation: sub-process.c:hashmap_get_size
Unexecuted instantiation: submodule-config.c:hashmap_get_size
Unexecuted instantiation: submodule.c:hashmap_get_size
Unexecuted instantiation: symlinks.c:hashmap_get_size
Unexecuted instantiation: tmp-objdir.c:hashmap_get_size
Unexecuted instantiation: trace.c:hashmap_get_size
Unexecuted instantiation: trace2.c:hashmap_get_size
Unexecuted instantiation: tr2_cfg.c:hashmap_get_size
Unexecuted instantiation: tr2_sysenv.c:hashmap_get_size
Unexecuted instantiation: tr2_tgt_event.c:hashmap_get_size
Unexecuted instantiation: tr2_tgt_normal.c:hashmap_get_size
Unexecuted instantiation: tr2_tgt_perf.c:hashmap_get_size
Unexecuted instantiation: trailer.c:hashmap_get_size
Unexecuted instantiation: transport-helper.c:hashmap_get_size
Unexecuted instantiation: transport.c:hashmap_get_size
Unexecuted instantiation: tree-diff.c:hashmap_get_size
Unexecuted instantiation: tree-walk.c:hashmap_get_size
Unexecuted instantiation: tree.c:hashmap_get_size
Unexecuted instantiation: unpack-trees.c:hashmap_get_size
Unexecuted instantiation: urlmatch.c:hashmap_get_size
Unexecuted instantiation: userdiff.c:hashmap_get_size
Unexecuted instantiation: versioncmp.c:hashmap_get_size
Unexecuted instantiation: wt-status.c:hashmap_get_size
Unexecuted instantiation: xdiff-interface.c:hashmap_get_size
Unexecuted instantiation: alloc.c:hashmap_get_size
Unexecuted instantiation: archive-tar.c:hashmap_get_size
Unexecuted instantiation: archive-zip.c:hashmap_get_size
Unexecuted instantiation: chunk-format.c:hashmap_get_size
Unexecuted instantiation: fetch-negotiator.c:hashmap_get_size
Unexecuted instantiation: list-objects-filter.c:hashmap_get_size
Unexecuted instantiation: loose.c:hashmap_get_size
Unexecuted instantiation: ls-refs.c:hashmap_get_size
Unexecuted instantiation: match-trees.c:hashmap_get_size
Unexecuted instantiation: default.c:hashmap_get_size
Unexecuted instantiation: skipping.c:hashmap_get_size
Unexecuted instantiation: protocol-caps.c:hashmap_get_size
Unexecuted instantiation: error.c:hashmap_get_size
Unexecuted instantiation: iter.c:hashmap_get_size
Unexecuted instantiation: publicbasics.c:hashmap_get_size
Unexecuted instantiation: reader.c:hashmap_get_size
Unexecuted instantiation: record.c:hashmap_get_size
Unexecuted instantiation: stack.c:hashmap_get_size
Unexecuted instantiation: writer.c:hashmap_get_size
Unexecuted instantiation: basics.c:hashmap_get_size
Unexecuted instantiation: block.c:hashmap_get_size
Unexecuted instantiation: blocksource.c:hashmap_get_size
Unexecuted instantiation: merged.c:hashmap_get_size
Unexecuted instantiation: pq.c:hashmap_get_size
Unexecuted instantiation: common-main.c:hashmap_get_size
311
312
/*
313
 * Returns the hashmap entry for the specified key, or NULL if not found.
314
 *
315
 * `map` is the hashmap structure.
316
 *
317
 * `key` is a user data structure that starts with hashmap_entry that has at
318
 * least been initialized with the proper hash code (via `hashmap_entry_init`).
319
 *
320
 * `keydata` is a data structure that holds just enough information to check
321
 * for equality to a given entry.
322
 *
323
 * If the key data is variable-sized (e.g. a FLEX_ARRAY string) or quite large,
324
 * it is undesirable to create a full-fledged entry structure on the heap and
325
 * copy all the key data into the structure.
326
 *
327
 * In this case, the `keydata` parameter can be used to pass
328
 * variable-sized key data directly to the comparison function, and the `key`
329
 * parameter can be a stripped-down, fixed size entry structure allocated on the
330
 * stack.
331
 *
332
 * If an entry with matching hash code is found, `key` and `keydata` are passed
333
 * to `hashmap_cmp_fn` to decide whether the entry matches the key.
334
 */
335
struct hashmap_entry *hashmap_get(const struct hashmap *map,
336
          const struct hashmap_entry *key,
337
          const void *keydata);
338
339
/*
340
 * Returns the hashmap entry for the specified hash code and key data,
341
 * or NULL if not found.
342
 *
343
 * `map` is the hashmap structure.
344
 * `hash` is the hash code of the entry to look up.
345
 *
346
 * If an entry with matching hash code is found, `keydata` is passed to
347
 * `hashmap_cmp_fn` to decide whether the entry matches the key. The
348
 * `entry_or_key` parameter of `hashmap_cmp_fn` points to a hashmap_entry
349
 * structure that should not be used in the comparison.
350
 */
351
static inline struct hashmap_entry *hashmap_get_from_hash(
352
          const struct hashmap *map,
353
          unsigned int hash,
354
          const void *keydata)
355
0
{
356
0
  struct hashmap_entry key;
357
0
  hashmap_entry_init(&key, hash);
358
0
  return hashmap_get(map, &key, keydata);
359
0
}
Unexecuted instantiation: add.c:hashmap_get_from_hash
Unexecuted instantiation: am.c:hashmap_get_from_hash
Unexecuted instantiation: apply.c:hashmap_get_from_hash
Unexecuted instantiation: archive.c:hashmap_get_from_hash
Unexecuted instantiation: bisect.c:hashmap_get_from_hash
Unexecuted instantiation: blame.c:hashmap_get_from_hash
Unexecuted instantiation: branch.c:hashmap_get_from_hash
Unexecuted instantiation: bugreport.c:hashmap_get_from_hash
Unexecuted instantiation: bundle.c:hashmap_get_from_hash
Unexecuted instantiation: cat-file.c:hashmap_get_from_hash
Unexecuted instantiation: check-attr.c:hashmap_get_from_hash
Unexecuted instantiation: check-ignore.c:hashmap_get_from_hash
Unexecuted instantiation: check-mailmap.c:hashmap_get_from_hash
Unexecuted instantiation: check-ref-format.c:hashmap_get_from_hash
Unexecuted instantiation: checkout--worker.c:hashmap_get_from_hash
Unexecuted instantiation: checkout-index.c:hashmap_get_from_hash
Unexecuted instantiation: checkout.c:hashmap_get_from_hash
Unexecuted instantiation: clean.c:hashmap_get_from_hash
Unexecuted instantiation: clone.c:hashmap_get_from_hash
Unexecuted instantiation: column.c:hashmap_get_from_hash
Unexecuted instantiation: commit-graph.c:hashmap_get_from_hash
Unexecuted instantiation: commit-tree.c:hashmap_get_from_hash
Unexecuted instantiation: commit.c:hashmap_get_from_hash
Unexecuted instantiation: config.c:hashmap_get_from_hash
Unexecuted instantiation: count-objects.c:hashmap_get_from_hash
Unexecuted instantiation: credential-cache--daemon.c:hashmap_get_from_hash
Unexecuted instantiation: credential-cache.c:hashmap_get_from_hash
Unexecuted instantiation: credential-store.c:hashmap_get_from_hash
Unexecuted instantiation: credential.c:hashmap_get_from_hash
Unexecuted instantiation: describe.c:hashmap_get_from_hash
Unexecuted instantiation: diagnose.c:hashmap_get_from_hash
Unexecuted instantiation: diff-files.c:hashmap_get_from_hash
Unexecuted instantiation: diff-index.c:hashmap_get_from_hash
Unexecuted instantiation: diff-tree.c:hashmap_get_from_hash
Unexecuted instantiation: diff.c:hashmap_get_from_hash
Unexecuted instantiation: difftool.c:hashmap_get_from_hash
Unexecuted instantiation: fast-export.c:hashmap_get_from_hash
Unexecuted instantiation: fast-import.c:hashmap_get_from_hash
Unexecuted instantiation: fetch-pack.c:hashmap_get_from_hash
Unexecuted instantiation: fetch.c:hashmap_get_from_hash
Unexecuted instantiation: fmt-merge-msg.c:hashmap_get_from_hash
Unexecuted instantiation: for-each-ref.c:hashmap_get_from_hash
Unexecuted instantiation: for-each-repo.c:hashmap_get_from_hash
Unexecuted instantiation: fsck.c:hashmap_get_from_hash
Unexecuted instantiation: fsmonitor--daemon.c:hashmap_get_from_hash
Unexecuted instantiation: gc.c:hashmap_get_from_hash
Unexecuted instantiation: get-tar-commit-id.c:hashmap_get_from_hash
Unexecuted instantiation: grep.c:hashmap_get_from_hash
Unexecuted instantiation: hash-object.c:hashmap_get_from_hash
Unexecuted instantiation: help.c:hashmap_get_from_hash
Unexecuted instantiation: hook.c:hashmap_get_from_hash
Unexecuted instantiation: index-pack.c:hashmap_get_from_hash
Unexecuted instantiation: init-db.c:hashmap_get_from_hash
Unexecuted instantiation: interpret-trailers.c:hashmap_get_from_hash
Unexecuted instantiation: log.c:hashmap_get_from_hash
Unexecuted instantiation: ls-files.c:hashmap_get_from_hash
Unexecuted instantiation: ls-remote.c:hashmap_get_from_hash
Unexecuted instantiation: ls-tree.c:hashmap_get_from_hash
Unexecuted instantiation: merge-base.c:hashmap_get_from_hash
Unexecuted instantiation: merge-file.c:hashmap_get_from_hash
Unexecuted instantiation: merge-index.c:hashmap_get_from_hash
Unexecuted instantiation: merge-ours.c:hashmap_get_from_hash
Unexecuted instantiation: merge-recursive.c:hashmap_get_from_hash
Unexecuted instantiation: merge-tree.c:hashmap_get_from_hash
Unexecuted instantiation: merge.c:hashmap_get_from_hash
Unexecuted instantiation: mktag.c:hashmap_get_from_hash
Unexecuted instantiation: mktree.c:hashmap_get_from_hash
Unexecuted instantiation: multi-pack-index.c:hashmap_get_from_hash
Unexecuted instantiation: mv.c:hashmap_get_from_hash
Unexecuted instantiation: name-rev.c:hashmap_get_from_hash
Unexecuted instantiation: notes.c:hashmap_get_from_hash
Unexecuted instantiation: pack-objects.c:hashmap_get_from_hash
Unexecuted instantiation: pack-redundant.c:hashmap_get_from_hash
Unexecuted instantiation: pack-refs.c:hashmap_get_from_hash
Unexecuted instantiation: patch-id.c:hashmap_get_from_hash
Unexecuted instantiation: prune.c:hashmap_get_from_hash
Unexecuted instantiation: pull.c:hashmap_get_from_hash
Unexecuted instantiation: push.c:hashmap_get_from_hash
Unexecuted instantiation: range-diff.c:hashmap_get_from_hash
Unexecuted instantiation: read-tree.c:hashmap_get_from_hash
Unexecuted instantiation: rebase.c:hashmap_get_from_hash
Unexecuted instantiation: receive-pack.c:hashmap_get_from_hash
Unexecuted instantiation: reflog.c:hashmap_get_from_hash
Unexecuted instantiation: refs.c:hashmap_get_from_hash
Unexecuted instantiation: remote-ext.c:hashmap_get_from_hash
Unexecuted instantiation: remote-fd.c:hashmap_get_from_hash
Unexecuted instantiation: remote.c:hashmap_get_from_hash
Unexecuted instantiation: repack.c:hashmap_get_from_hash
Unexecuted instantiation: replace.c:hashmap_get_from_hash
Unexecuted instantiation: replay.c:hashmap_get_from_hash
Unexecuted instantiation: rerere.c:hashmap_get_from_hash
Unexecuted instantiation: reset.c:hashmap_get_from_hash
Unexecuted instantiation: rev-list.c:hashmap_get_from_hash
Unexecuted instantiation: rev-parse.c:hashmap_get_from_hash
Unexecuted instantiation: revert.c:hashmap_get_from_hash
Unexecuted instantiation: rm.c:hashmap_get_from_hash
Unexecuted instantiation: send-pack.c:hashmap_get_from_hash
Unexecuted instantiation: shortlog.c:hashmap_get_from_hash
Unexecuted instantiation: show-branch.c:hashmap_get_from_hash
Unexecuted instantiation: show-index.c:hashmap_get_from_hash
Unexecuted instantiation: show-ref.c:hashmap_get_from_hash
Unexecuted instantiation: sparse-checkout.c:hashmap_get_from_hash
Unexecuted instantiation: stash.c:hashmap_get_from_hash
Unexecuted instantiation: stripspace.c:hashmap_get_from_hash
Unexecuted instantiation: submodule--helper.c:hashmap_get_from_hash
Unexecuted instantiation: symbolic-ref.c:hashmap_get_from_hash
Unexecuted instantiation: tag.c:hashmap_get_from_hash
Unexecuted instantiation: unpack-file.c:hashmap_get_from_hash
Unexecuted instantiation: unpack-objects.c:hashmap_get_from_hash
Unexecuted instantiation: update-index.c:hashmap_get_from_hash
Unexecuted instantiation: update-ref.c:hashmap_get_from_hash
Unexecuted instantiation: update-server-info.c:hashmap_get_from_hash
Unexecuted instantiation: upload-archive.c:hashmap_get_from_hash
Unexecuted instantiation: upload-pack.c:hashmap_get_from_hash
Unexecuted instantiation: var.c:hashmap_get_from_hash
Unexecuted instantiation: verify-commit.c:hashmap_get_from_hash
Unexecuted instantiation: verify-pack.c:hashmap_get_from_hash
Unexecuted instantiation: verify-tag.c:hashmap_get_from_hash
Unexecuted instantiation: worktree.c:hashmap_get_from_hash
Unexecuted instantiation: write-tree.c:hashmap_get_from_hash
Unexecuted instantiation: git.c:hashmap_get_from_hash
Unexecuted instantiation: add-interactive.c:hashmap_get_from_hash
Unexecuted instantiation: add-patch.c:hashmap_get_from_hash
Unexecuted instantiation: advice.c:hashmap_get_from_hash
Unexecuted instantiation: alias.c:hashmap_get_from_hash
Unexecuted instantiation: attr.c:hashmap_get_from_hash
Unexecuted instantiation: bloom.c:hashmap_get_from_hash
Unexecuted instantiation: bulk-checkin.c:hashmap_get_from_hash
Unexecuted instantiation: bundle-uri.c:hashmap_get_from_hash
Unexecuted instantiation: cache-tree.c:hashmap_get_from_hash
Unexecuted instantiation: color.c:hashmap_get_from_hash
Unexecuted instantiation: combine-diff.c:hashmap_get_from_hash
Unexecuted instantiation: commit-reach.c:hashmap_get_from_hash
Unexecuted instantiation: terminal.c:hashmap_get_from_hash
Unexecuted instantiation: connect.c:hashmap_get_from_hash
Unexecuted instantiation: connected.c:hashmap_get_from_hash
Unexecuted instantiation: convert.c:hashmap_get_from_hash
Unexecuted instantiation: csum-file.c:hashmap_get_from_hash
Unexecuted instantiation: delta-islands.c:hashmap_get_from_hash
Unexecuted instantiation: diff-lib.c:hashmap_get_from_hash
Unexecuted instantiation: diff-no-index.c:hashmap_get_from_hash
Unexecuted instantiation: diffcore-break.c:hashmap_get_from_hash
Unexecuted instantiation: diffcore-rename.c:hashmap_get_from_hash
Unexecuted instantiation: dir-iterator.c:hashmap_get_from_hash
Unexecuted instantiation: dir.c:hashmap_get_from_hash
Unexecuted instantiation: editor.c:hashmap_get_from_hash
Unexecuted instantiation: entry.c:hashmap_get_from_hash
Unexecuted instantiation: environment.c:hashmap_get_from_hash
Unexecuted instantiation: fsmonitor.c:hashmap_get_from_hash
Unexecuted instantiation: fsmonitor-ipc.c:hashmap_get_from_hash
Unexecuted instantiation: fsmonitor-settings.c:hashmap_get_from_hash
Unexecuted instantiation: gpg-interface.c:hashmap_get_from_hash
Unexecuted instantiation: graph.c:hashmap_get_from_hash
Unexecuted instantiation: hash-lookup.c:hashmap_get_from_hash
Unexecuted instantiation: hashmap.c:hashmap_get_from_hash
Unexecuted instantiation: hex.c:hashmap_get_from_hash
Unexecuted instantiation: ident.c:hashmap_get_from_hash
Unexecuted instantiation: line-log.c:hashmap_get_from_hash
Unexecuted instantiation: list-objects-filter-options.c:hashmap_get_from_hash
Unexecuted instantiation: list-objects.c:hashmap_get_from_hash
Unexecuted instantiation: log-tree.c:hashmap_get_from_hash
Unexecuted instantiation: mailinfo.c:hashmap_get_from_hash
Unexecuted instantiation: mailmap.c:hashmap_get_from_hash
Unexecuted instantiation: merge-blobs.c:hashmap_get_from_hash
Unexecuted instantiation: merge-ll.c:hashmap_get_from_hash
Unexecuted instantiation: merge-ort.c:hashmap_get_from_hash
Unexecuted instantiation: merge-ort-wrappers.c:hashmap_get_from_hash
Unexecuted instantiation: midx.c:hashmap_get_from_hash
Unexecuted instantiation: midx-write.c:hashmap_get_from_hash
Unexecuted instantiation: name-hash.c:hashmap_get_from_hash
Unexecuted instantiation: notes-cache.c:hashmap_get_from_hash
Unexecuted instantiation: notes-merge.c:hashmap_get_from_hash
Unexecuted instantiation: notes-utils.c:hashmap_get_from_hash
Unexecuted instantiation: object-file-convert.c:hashmap_get_from_hash
Unexecuted instantiation: object-file.c:hashmap_get_from_hash
Unexecuted instantiation: object-name.c:hashmap_get_from_hash
Unexecuted instantiation: object.c:hashmap_get_from_hash
Unexecuted instantiation: oid-array.c:hashmap_get_from_hash
Unexecuted instantiation: oidmap.c:hashmap_get_from_hash
Unexecuted instantiation: pack-bitmap-write.c:hashmap_get_from_hash
Unexecuted instantiation: pack-bitmap.c:hashmap_get_from_hash
Unexecuted instantiation: pack-check.c:hashmap_get_from_hash
Unexecuted instantiation: pack-mtimes.c:hashmap_get_from_hash
Unexecuted instantiation: pack-revindex.c:hashmap_get_from_hash
Unexecuted instantiation: pack-write.c:hashmap_get_from_hash
Unexecuted instantiation: packfile.c:hashmap_get_from_hash
Unexecuted instantiation: pager.c:hashmap_get_from_hash
Unexecuted instantiation: parallel-checkout.c:hashmap_get_from_hash
Unexecuted instantiation: parse-options-cb.c:hashmap_get_from_hash
Unexecuted instantiation: patch-ids.c:hashmap_get_from_hash
Unexecuted instantiation: path.c:hashmap_get_from_hash
Unexecuted instantiation: pathspec.c:hashmap_get_from_hash
Unexecuted instantiation: preload-index.c:hashmap_get_from_hash
Unexecuted instantiation: pretty.c:hashmap_get_from_hash
Unexecuted instantiation: progress.c:hashmap_get_from_hash
Unexecuted instantiation: promisor-remote.c:hashmap_get_from_hash
Unexecuted instantiation: protocol.c:hashmap_get_from_hash
Unexecuted instantiation: prune-packed.c:hashmap_get_from_hash
Unexecuted instantiation: pseudo-merge.c:hashmap_get_from_hash
Unexecuted instantiation: reachable.c:hashmap_get_from_hash
Unexecuted instantiation: read-cache.c:hashmap_get_from_hash
Unexecuted instantiation: rebase-interactive.c:hashmap_get_from_hash
Unexecuted instantiation: ref-filter.c:hashmap_get_from_hash
Unexecuted instantiation: reflog-walk.c:hashmap_get_from_hash
Unexecuted instantiation: debug.c:hashmap_get_from_hash
Unexecuted instantiation: files-backend.c:hashmap_get_from_hash
Unexecuted instantiation: reftable-backend.c:hashmap_get_from_hash
Unexecuted instantiation: iterator.c:hashmap_get_from_hash
Unexecuted instantiation: packed-backend.c:hashmap_get_from_hash
Unexecuted instantiation: ref-cache.c:hashmap_get_from_hash
Unexecuted instantiation: refspec.c:hashmap_get_from_hash
Unexecuted instantiation: replace-object.c:hashmap_get_from_hash
Unexecuted instantiation: repo-settings.c:hashmap_get_from_hash
Unexecuted instantiation: repository.c:hashmap_get_from_hash
Unexecuted instantiation: resolve-undo.c:hashmap_get_from_hash
Unexecuted instantiation: revision.c:hashmap_get_from_hash
Unexecuted instantiation: run-command.c:hashmap_get_from_hash
Unexecuted instantiation: sequencer.c:hashmap_get_from_hash
Unexecuted instantiation: serve.c:hashmap_get_from_hash
Unexecuted instantiation: server-info.c:hashmap_get_from_hash
Unexecuted instantiation: setup.c:hashmap_get_from_hash
Unexecuted instantiation: shallow.c:hashmap_get_from_hash
Unexecuted instantiation: sideband.c:hashmap_get_from_hash
Unexecuted instantiation: sparse-index.c:hashmap_get_from_hash
Unexecuted instantiation: split-index.c:hashmap_get_from_hash
Unexecuted instantiation: streaming.c:hashmap_get_from_hash
Unexecuted instantiation: strmap.c:hashmap_get_from_hash
Unexecuted instantiation: sub-process.c:hashmap_get_from_hash
Unexecuted instantiation: submodule-config.c:hashmap_get_from_hash
Unexecuted instantiation: submodule.c:hashmap_get_from_hash
Unexecuted instantiation: symlinks.c:hashmap_get_from_hash
Unexecuted instantiation: tmp-objdir.c:hashmap_get_from_hash
Unexecuted instantiation: trace.c:hashmap_get_from_hash
Unexecuted instantiation: trace2.c:hashmap_get_from_hash
Unexecuted instantiation: tr2_cfg.c:hashmap_get_from_hash
Unexecuted instantiation: tr2_sysenv.c:hashmap_get_from_hash
Unexecuted instantiation: tr2_tgt_event.c:hashmap_get_from_hash
Unexecuted instantiation: tr2_tgt_normal.c:hashmap_get_from_hash
Unexecuted instantiation: tr2_tgt_perf.c:hashmap_get_from_hash
Unexecuted instantiation: trailer.c:hashmap_get_from_hash
Unexecuted instantiation: transport-helper.c:hashmap_get_from_hash
Unexecuted instantiation: transport.c:hashmap_get_from_hash
Unexecuted instantiation: tree-diff.c:hashmap_get_from_hash
Unexecuted instantiation: tree-walk.c:hashmap_get_from_hash
Unexecuted instantiation: tree.c:hashmap_get_from_hash
Unexecuted instantiation: unpack-trees.c:hashmap_get_from_hash
Unexecuted instantiation: urlmatch.c:hashmap_get_from_hash
Unexecuted instantiation: userdiff.c:hashmap_get_from_hash
Unexecuted instantiation: versioncmp.c:hashmap_get_from_hash
Unexecuted instantiation: wt-status.c:hashmap_get_from_hash
Unexecuted instantiation: xdiff-interface.c:hashmap_get_from_hash
Unexecuted instantiation: alloc.c:hashmap_get_from_hash
Unexecuted instantiation: archive-tar.c:hashmap_get_from_hash
Unexecuted instantiation: archive-zip.c:hashmap_get_from_hash
Unexecuted instantiation: chunk-format.c:hashmap_get_from_hash
Unexecuted instantiation: fetch-negotiator.c:hashmap_get_from_hash
Unexecuted instantiation: list-objects-filter.c:hashmap_get_from_hash
Unexecuted instantiation: loose.c:hashmap_get_from_hash
Unexecuted instantiation: ls-refs.c:hashmap_get_from_hash
Unexecuted instantiation: match-trees.c:hashmap_get_from_hash
Unexecuted instantiation: default.c:hashmap_get_from_hash
Unexecuted instantiation: skipping.c:hashmap_get_from_hash
Unexecuted instantiation: protocol-caps.c:hashmap_get_from_hash
Unexecuted instantiation: error.c:hashmap_get_from_hash
Unexecuted instantiation: iter.c:hashmap_get_from_hash
Unexecuted instantiation: publicbasics.c:hashmap_get_from_hash
Unexecuted instantiation: reader.c:hashmap_get_from_hash
Unexecuted instantiation: record.c:hashmap_get_from_hash
Unexecuted instantiation: stack.c:hashmap_get_from_hash
Unexecuted instantiation: writer.c:hashmap_get_from_hash
Unexecuted instantiation: basics.c:hashmap_get_from_hash
Unexecuted instantiation: block.c:hashmap_get_from_hash
Unexecuted instantiation: blocksource.c:hashmap_get_from_hash
Unexecuted instantiation: merged.c:hashmap_get_from_hash
Unexecuted instantiation: pq.c:hashmap_get_from_hash
Unexecuted instantiation: common-main.c:hashmap_get_from_hash
360
361
/*
362
 * Returns the next equal hashmap entry, or NULL if not found. This can be
363
 * used to iterate over duplicate entries (see `hashmap_add`).
364
 *
365
 * `map` is the hashmap structure.
366
 * `entry` is the hashmap_entry to start the search from, obtained via a previous
367
 * call to `hashmap_get` or `hashmap_get_next`.
368
 */
369
struct hashmap_entry *hashmap_get_next(const struct hashmap *map,
370
               const struct hashmap_entry *entry);
371
372
/*
373
 * Adds a hashmap entry. This allows to add duplicate entries (i.e.
374
 * separate values with the same key according to hashmap_cmp_fn).
375
 *
376
 * `map` is the hashmap structure.
377
 * `entry` is the entry to add.
378
 */
379
void hashmap_add(struct hashmap *map, struct hashmap_entry *entry);
380
381
/*
382
 * Adds or replaces a hashmap entry. If the hashmap contains duplicate
383
 * entries equal to the specified entry, only one of them will be replaced.
384
 *
385
 * `map` is the hashmap structure.
386
 * `entry` is the entry to add or replace.
387
 * Returns the replaced entry, or NULL if not found (i.e. the entry was added).
388
 */
389
struct hashmap_entry *hashmap_put(struct hashmap *map,
390
          struct hashmap_entry *entry);
391
392
/*
393
 * Adds or replaces a hashmap entry contained within @keyvar,
394
 * where @keyvar is a pointer to a struct containing a
395
 * "struct hashmap_entry" @member.
396
 *
397
 * Returns the replaced pointer which is of the same type as @keyvar,
398
 * or NULL if not found.
399
 */
400
#define hashmap_put_entry(map, keyvar, member) \
401
0
  container_of_or_null_offset(hashmap_put(map, &(keyvar)->member), \
402
0
        OFFSETOF_VAR(keyvar, member))
403
404
/*
405
 * Removes a hashmap entry matching the specified key. If the hashmap contains
406
 * duplicate entries equal to the specified key, only one of them will be
407
 * removed. Returns the removed entry, or NULL if not found.
408
 *
409
 * Argument explanation is the same as in `hashmap_get`.
410
 */
411
struct hashmap_entry *hashmap_remove(struct hashmap *map,
412
             const struct hashmap_entry *key,
413
             const void *keydata);
414
415
/*
416
 * Removes a hashmap entry contained within @keyvar,
417
 * where @keyvar is a pointer to a struct containing a
418
 * "struct hashmap_entry" @member.
419
 *
420
 * See `hashmap_get` for an explanation of @keydata
421
 *
422
 * Returns the replaced pointer which is of the same type as @keyvar,
423
 * or NULL if not found.
424
 */
425
#define hashmap_remove_entry(map, keyvar, member, keydata) \
426
0
  container_of_or_null_offset( \
427
0
      hashmap_remove(map, &(keyvar)->member, keydata), \
428
0
      OFFSETOF_VAR(keyvar, member))
429
430
/*
431
 * Returns the `bucket` an entry is stored in.
432
 * Useful for multithreaded read access.
433
 */
434
int hashmap_bucket(const struct hashmap *map, unsigned int hash);
435
436
/*
437
 * Used to iterate over all entries of a hashmap. Note that it is
438
 * not safe to add or remove entries to the hashmap while
439
 * iterating.
440
 */
441
struct hashmap_iter {
442
  struct hashmap *map;
443
  struct hashmap_entry *next;
444
  unsigned int tablepos;
445
};
446
447
/* Initializes a `hashmap_iter` structure. */
448
void hashmap_iter_init(struct hashmap *map, struct hashmap_iter *iter);
449
450
/* Returns the next hashmap_entry, or NULL if there are no more entries. */
451
struct hashmap_entry *hashmap_iter_next(struct hashmap_iter *iter);
452
453
/* Initializes the iterator and returns the first entry, if any. */
454
static inline struct hashmap_entry *hashmap_iter_first(struct hashmap *map,
455
                   struct hashmap_iter *iter)
456
0
{
457
0
  hashmap_iter_init(map, iter);
458
0
  return hashmap_iter_next(iter);
459
0
}
Unexecuted instantiation: add.c:hashmap_iter_first
Unexecuted instantiation: am.c:hashmap_iter_first
Unexecuted instantiation: apply.c:hashmap_iter_first
Unexecuted instantiation: archive.c:hashmap_iter_first
Unexecuted instantiation: bisect.c:hashmap_iter_first
Unexecuted instantiation: blame.c:hashmap_iter_first
Unexecuted instantiation: branch.c:hashmap_iter_first
Unexecuted instantiation: bugreport.c:hashmap_iter_first
Unexecuted instantiation: bundle.c:hashmap_iter_first
Unexecuted instantiation: cat-file.c:hashmap_iter_first
Unexecuted instantiation: check-attr.c:hashmap_iter_first
Unexecuted instantiation: check-ignore.c:hashmap_iter_first
Unexecuted instantiation: check-mailmap.c:hashmap_iter_first
Unexecuted instantiation: check-ref-format.c:hashmap_iter_first
Unexecuted instantiation: checkout--worker.c:hashmap_iter_first
Unexecuted instantiation: checkout-index.c:hashmap_iter_first
Unexecuted instantiation: checkout.c:hashmap_iter_first
Unexecuted instantiation: clean.c:hashmap_iter_first
Unexecuted instantiation: clone.c:hashmap_iter_first
Unexecuted instantiation: column.c:hashmap_iter_first
Unexecuted instantiation: commit-graph.c:hashmap_iter_first
Unexecuted instantiation: commit-tree.c:hashmap_iter_first
Unexecuted instantiation: commit.c:hashmap_iter_first
Unexecuted instantiation: config.c:hashmap_iter_first
Unexecuted instantiation: count-objects.c:hashmap_iter_first
Unexecuted instantiation: credential-cache--daemon.c:hashmap_iter_first
Unexecuted instantiation: credential-cache.c:hashmap_iter_first
Unexecuted instantiation: credential-store.c:hashmap_iter_first
Unexecuted instantiation: credential.c:hashmap_iter_first
Unexecuted instantiation: describe.c:hashmap_iter_first
Unexecuted instantiation: diagnose.c:hashmap_iter_first
Unexecuted instantiation: diff-files.c:hashmap_iter_first
Unexecuted instantiation: diff-index.c:hashmap_iter_first
Unexecuted instantiation: diff-tree.c:hashmap_iter_first
Unexecuted instantiation: diff.c:hashmap_iter_first
Unexecuted instantiation: difftool.c:hashmap_iter_first
Unexecuted instantiation: fast-export.c:hashmap_iter_first
Unexecuted instantiation: fast-import.c:hashmap_iter_first
Unexecuted instantiation: fetch-pack.c:hashmap_iter_first
Unexecuted instantiation: fetch.c:hashmap_iter_first
Unexecuted instantiation: fmt-merge-msg.c:hashmap_iter_first
Unexecuted instantiation: for-each-ref.c:hashmap_iter_first
Unexecuted instantiation: for-each-repo.c:hashmap_iter_first
Unexecuted instantiation: fsck.c:hashmap_iter_first
Unexecuted instantiation: fsmonitor--daemon.c:hashmap_iter_first
Unexecuted instantiation: gc.c:hashmap_iter_first
Unexecuted instantiation: get-tar-commit-id.c:hashmap_iter_first
Unexecuted instantiation: grep.c:hashmap_iter_first
Unexecuted instantiation: hash-object.c:hashmap_iter_first
Unexecuted instantiation: help.c:hashmap_iter_first
Unexecuted instantiation: hook.c:hashmap_iter_first
Unexecuted instantiation: index-pack.c:hashmap_iter_first
Unexecuted instantiation: init-db.c:hashmap_iter_first
Unexecuted instantiation: interpret-trailers.c:hashmap_iter_first
Unexecuted instantiation: log.c:hashmap_iter_first
Unexecuted instantiation: ls-files.c:hashmap_iter_first
Unexecuted instantiation: ls-remote.c:hashmap_iter_first
Unexecuted instantiation: ls-tree.c:hashmap_iter_first
Unexecuted instantiation: merge-base.c:hashmap_iter_first
Unexecuted instantiation: merge-file.c:hashmap_iter_first
Unexecuted instantiation: merge-index.c:hashmap_iter_first
Unexecuted instantiation: merge-ours.c:hashmap_iter_first
Unexecuted instantiation: merge-recursive.c:hashmap_iter_first
Unexecuted instantiation: merge-tree.c:hashmap_iter_first
Unexecuted instantiation: merge.c:hashmap_iter_first
Unexecuted instantiation: mktag.c:hashmap_iter_first
Unexecuted instantiation: mktree.c:hashmap_iter_first
Unexecuted instantiation: multi-pack-index.c:hashmap_iter_first
Unexecuted instantiation: mv.c:hashmap_iter_first
Unexecuted instantiation: name-rev.c:hashmap_iter_first
Unexecuted instantiation: notes.c:hashmap_iter_first
Unexecuted instantiation: pack-objects.c:hashmap_iter_first
Unexecuted instantiation: pack-redundant.c:hashmap_iter_first
Unexecuted instantiation: pack-refs.c:hashmap_iter_first
Unexecuted instantiation: patch-id.c:hashmap_iter_first
Unexecuted instantiation: prune.c:hashmap_iter_first
Unexecuted instantiation: pull.c:hashmap_iter_first
Unexecuted instantiation: push.c:hashmap_iter_first
Unexecuted instantiation: range-diff.c:hashmap_iter_first
Unexecuted instantiation: read-tree.c:hashmap_iter_first
Unexecuted instantiation: rebase.c:hashmap_iter_first
Unexecuted instantiation: receive-pack.c:hashmap_iter_first
Unexecuted instantiation: reflog.c:hashmap_iter_first
Unexecuted instantiation: refs.c:hashmap_iter_first
Unexecuted instantiation: remote-ext.c:hashmap_iter_first
Unexecuted instantiation: remote-fd.c:hashmap_iter_first
Unexecuted instantiation: remote.c:hashmap_iter_first
Unexecuted instantiation: repack.c:hashmap_iter_first
Unexecuted instantiation: replace.c:hashmap_iter_first
Unexecuted instantiation: replay.c:hashmap_iter_first
Unexecuted instantiation: rerere.c:hashmap_iter_first
Unexecuted instantiation: reset.c:hashmap_iter_first
Unexecuted instantiation: rev-list.c:hashmap_iter_first
Unexecuted instantiation: rev-parse.c:hashmap_iter_first
Unexecuted instantiation: revert.c:hashmap_iter_first
Unexecuted instantiation: rm.c:hashmap_iter_first
Unexecuted instantiation: send-pack.c:hashmap_iter_first
Unexecuted instantiation: shortlog.c:hashmap_iter_first
Unexecuted instantiation: show-branch.c:hashmap_iter_first
Unexecuted instantiation: show-index.c:hashmap_iter_first
Unexecuted instantiation: show-ref.c:hashmap_iter_first
Unexecuted instantiation: sparse-checkout.c:hashmap_iter_first
Unexecuted instantiation: stash.c:hashmap_iter_first
Unexecuted instantiation: stripspace.c:hashmap_iter_first
Unexecuted instantiation: submodule--helper.c:hashmap_iter_first
Unexecuted instantiation: symbolic-ref.c:hashmap_iter_first
Unexecuted instantiation: tag.c:hashmap_iter_first
Unexecuted instantiation: unpack-file.c:hashmap_iter_first
Unexecuted instantiation: unpack-objects.c:hashmap_iter_first
Unexecuted instantiation: update-index.c:hashmap_iter_first
Unexecuted instantiation: update-ref.c:hashmap_iter_first
Unexecuted instantiation: update-server-info.c:hashmap_iter_first
Unexecuted instantiation: upload-archive.c:hashmap_iter_first
Unexecuted instantiation: upload-pack.c:hashmap_iter_first
Unexecuted instantiation: var.c:hashmap_iter_first
Unexecuted instantiation: verify-commit.c:hashmap_iter_first
Unexecuted instantiation: verify-pack.c:hashmap_iter_first
Unexecuted instantiation: verify-tag.c:hashmap_iter_first
Unexecuted instantiation: worktree.c:hashmap_iter_first
Unexecuted instantiation: write-tree.c:hashmap_iter_first
Unexecuted instantiation: git.c:hashmap_iter_first
Unexecuted instantiation: add-interactive.c:hashmap_iter_first
Unexecuted instantiation: add-patch.c:hashmap_iter_first
Unexecuted instantiation: advice.c:hashmap_iter_first
Unexecuted instantiation: alias.c:hashmap_iter_first
Unexecuted instantiation: attr.c:hashmap_iter_first
Unexecuted instantiation: bloom.c:hashmap_iter_first
Unexecuted instantiation: bulk-checkin.c:hashmap_iter_first
Unexecuted instantiation: bundle-uri.c:hashmap_iter_first
Unexecuted instantiation: cache-tree.c:hashmap_iter_first
Unexecuted instantiation: color.c:hashmap_iter_first
Unexecuted instantiation: combine-diff.c:hashmap_iter_first
Unexecuted instantiation: commit-reach.c:hashmap_iter_first
Unexecuted instantiation: terminal.c:hashmap_iter_first
Unexecuted instantiation: connect.c:hashmap_iter_first
Unexecuted instantiation: connected.c:hashmap_iter_first
Unexecuted instantiation: convert.c:hashmap_iter_first
Unexecuted instantiation: csum-file.c:hashmap_iter_first
Unexecuted instantiation: delta-islands.c:hashmap_iter_first
Unexecuted instantiation: diff-lib.c:hashmap_iter_first
Unexecuted instantiation: diff-no-index.c:hashmap_iter_first
Unexecuted instantiation: diffcore-break.c:hashmap_iter_first
Unexecuted instantiation: diffcore-rename.c:hashmap_iter_first
Unexecuted instantiation: dir-iterator.c:hashmap_iter_first
Unexecuted instantiation: dir.c:hashmap_iter_first
Unexecuted instantiation: editor.c:hashmap_iter_first
Unexecuted instantiation: entry.c:hashmap_iter_first
Unexecuted instantiation: environment.c:hashmap_iter_first
Unexecuted instantiation: fsmonitor.c:hashmap_iter_first
Unexecuted instantiation: fsmonitor-ipc.c:hashmap_iter_first
Unexecuted instantiation: fsmonitor-settings.c:hashmap_iter_first
Unexecuted instantiation: gpg-interface.c:hashmap_iter_first
Unexecuted instantiation: graph.c:hashmap_iter_first
Unexecuted instantiation: hash-lookup.c:hashmap_iter_first
Unexecuted instantiation: hashmap.c:hashmap_iter_first
Unexecuted instantiation: hex.c:hashmap_iter_first
Unexecuted instantiation: ident.c:hashmap_iter_first
Unexecuted instantiation: line-log.c:hashmap_iter_first
Unexecuted instantiation: list-objects-filter-options.c:hashmap_iter_first
Unexecuted instantiation: list-objects.c:hashmap_iter_first
Unexecuted instantiation: log-tree.c:hashmap_iter_first
Unexecuted instantiation: mailinfo.c:hashmap_iter_first
Unexecuted instantiation: mailmap.c:hashmap_iter_first
Unexecuted instantiation: merge-blobs.c:hashmap_iter_first
Unexecuted instantiation: merge-ll.c:hashmap_iter_first
Unexecuted instantiation: merge-ort.c:hashmap_iter_first
Unexecuted instantiation: merge-ort-wrappers.c:hashmap_iter_first
Unexecuted instantiation: midx.c:hashmap_iter_first
Unexecuted instantiation: midx-write.c:hashmap_iter_first
Unexecuted instantiation: name-hash.c:hashmap_iter_first
Unexecuted instantiation: notes-cache.c:hashmap_iter_first
Unexecuted instantiation: notes-merge.c:hashmap_iter_first
Unexecuted instantiation: notes-utils.c:hashmap_iter_first
Unexecuted instantiation: object-file-convert.c:hashmap_iter_first
Unexecuted instantiation: object-file.c:hashmap_iter_first
Unexecuted instantiation: object-name.c:hashmap_iter_first
Unexecuted instantiation: object.c:hashmap_iter_first
Unexecuted instantiation: oid-array.c:hashmap_iter_first
Unexecuted instantiation: oidmap.c:hashmap_iter_first
Unexecuted instantiation: pack-bitmap-write.c:hashmap_iter_first
Unexecuted instantiation: pack-bitmap.c:hashmap_iter_first
Unexecuted instantiation: pack-check.c:hashmap_iter_first
Unexecuted instantiation: pack-mtimes.c:hashmap_iter_first
Unexecuted instantiation: pack-revindex.c:hashmap_iter_first
Unexecuted instantiation: pack-write.c:hashmap_iter_first
Unexecuted instantiation: packfile.c:hashmap_iter_first
Unexecuted instantiation: pager.c:hashmap_iter_first
Unexecuted instantiation: parallel-checkout.c:hashmap_iter_first
Unexecuted instantiation: parse-options-cb.c:hashmap_iter_first
Unexecuted instantiation: patch-ids.c:hashmap_iter_first
Unexecuted instantiation: path.c:hashmap_iter_first
Unexecuted instantiation: pathspec.c:hashmap_iter_first
Unexecuted instantiation: preload-index.c:hashmap_iter_first
Unexecuted instantiation: pretty.c:hashmap_iter_first
Unexecuted instantiation: progress.c:hashmap_iter_first
Unexecuted instantiation: promisor-remote.c:hashmap_iter_first
Unexecuted instantiation: protocol.c:hashmap_iter_first
Unexecuted instantiation: prune-packed.c:hashmap_iter_first
Unexecuted instantiation: pseudo-merge.c:hashmap_iter_first
Unexecuted instantiation: reachable.c:hashmap_iter_first
Unexecuted instantiation: read-cache.c:hashmap_iter_first
Unexecuted instantiation: rebase-interactive.c:hashmap_iter_first
Unexecuted instantiation: ref-filter.c:hashmap_iter_first
Unexecuted instantiation: reflog-walk.c:hashmap_iter_first
Unexecuted instantiation: debug.c:hashmap_iter_first
Unexecuted instantiation: files-backend.c:hashmap_iter_first
Unexecuted instantiation: reftable-backend.c:hashmap_iter_first
Unexecuted instantiation: iterator.c:hashmap_iter_first
Unexecuted instantiation: packed-backend.c:hashmap_iter_first
Unexecuted instantiation: ref-cache.c:hashmap_iter_first
Unexecuted instantiation: refspec.c:hashmap_iter_first
Unexecuted instantiation: replace-object.c:hashmap_iter_first
Unexecuted instantiation: repo-settings.c:hashmap_iter_first
Unexecuted instantiation: repository.c:hashmap_iter_first
Unexecuted instantiation: resolve-undo.c:hashmap_iter_first
Unexecuted instantiation: revision.c:hashmap_iter_first
Unexecuted instantiation: run-command.c:hashmap_iter_first
Unexecuted instantiation: sequencer.c:hashmap_iter_first
Unexecuted instantiation: serve.c:hashmap_iter_first
Unexecuted instantiation: server-info.c:hashmap_iter_first
Unexecuted instantiation: setup.c:hashmap_iter_first
Unexecuted instantiation: shallow.c:hashmap_iter_first
Unexecuted instantiation: sideband.c:hashmap_iter_first
Unexecuted instantiation: sparse-index.c:hashmap_iter_first
Unexecuted instantiation: split-index.c:hashmap_iter_first
Unexecuted instantiation: streaming.c:hashmap_iter_first
Unexecuted instantiation: strmap.c:hashmap_iter_first
Unexecuted instantiation: sub-process.c:hashmap_iter_first
Unexecuted instantiation: submodule-config.c:hashmap_iter_first
Unexecuted instantiation: submodule.c:hashmap_iter_first
Unexecuted instantiation: symlinks.c:hashmap_iter_first
Unexecuted instantiation: tmp-objdir.c:hashmap_iter_first
Unexecuted instantiation: trace.c:hashmap_iter_first
Unexecuted instantiation: trace2.c:hashmap_iter_first
Unexecuted instantiation: tr2_cfg.c:hashmap_iter_first
Unexecuted instantiation: tr2_sysenv.c:hashmap_iter_first
Unexecuted instantiation: tr2_tgt_event.c:hashmap_iter_first
Unexecuted instantiation: tr2_tgt_normal.c:hashmap_iter_first
Unexecuted instantiation: tr2_tgt_perf.c:hashmap_iter_first
Unexecuted instantiation: trailer.c:hashmap_iter_first
Unexecuted instantiation: transport-helper.c:hashmap_iter_first
Unexecuted instantiation: transport.c:hashmap_iter_first
Unexecuted instantiation: tree-diff.c:hashmap_iter_first
Unexecuted instantiation: tree-walk.c:hashmap_iter_first
Unexecuted instantiation: tree.c:hashmap_iter_first
Unexecuted instantiation: unpack-trees.c:hashmap_iter_first
Unexecuted instantiation: urlmatch.c:hashmap_iter_first
Unexecuted instantiation: userdiff.c:hashmap_iter_first
Unexecuted instantiation: versioncmp.c:hashmap_iter_first
Unexecuted instantiation: wt-status.c:hashmap_iter_first
Unexecuted instantiation: xdiff-interface.c:hashmap_iter_first
Unexecuted instantiation: alloc.c:hashmap_iter_first
Unexecuted instantiation: archive-tar.c:hashmap_iter_first
Unexecuted instantiation: archive-zip.c:hashmap_iter_first
Unexecuted instantiation: chunk-format.c:hashmap_iter_first
Unexecuted instantiation: fetch-negotiator.c:hashmap_iter_first
Unexecuted instantiation: list-objects-filter.c:hashmap_iter_first
Unexecuted instantiation: loose.c:hashmap_iter_first
Unexecuted instantiation: ls-refs.c:hashmap_iter_first
Unexecuted instantiation: match-trees.c:hashmap_iter_first
Unexecuted instantiation: default.c:hashmap_iter_first
Unexecuted instantiation: skipping.c:hashmap_iter_first
Unexecuted instantiation: protocol-caps.c:hashmap_iter_first
Unexecuted instantiation: error.c:hashmap_iter_first
Unexecuted instantiation: iter.c:hashmap_iter_first
Unexecuted instantiation: publicbasics.c:hashmap_iter_first
Unexecuted instantiation: reader.c:hashmap_iter_first
Unexecuted instantiation: record.c:hashmap_iter_first
Unexecuted instantiation: stack.c:hashmap_iter_first
Unexecuted instantiation: writer.c:hashmap_iter_first
Unexecuted instantiation: basics.c:hashmap_iter_first
Unexecuted instantiation: block.c:hashmap_iter_first
Unexecuted instantiation: blocksource.c:hashmap_iter_first
Unexecuted instantiation: merged.c:hashmap_iter_first
Unexecuted instantiation: pq.c:hashmap_iter_first
Unexecuted instantiation: common-main.c:hashmap_iter_first
460
461
/*
462
 * returns the first entry in @map using @iter, where the entry is of
463
 * @type (e.g. "struct foo") and @member is the name of the
464
 * "struct hashmap_entry" in @type
465
 */
466
#define hashmap_iter_first_entry(map, iter, type, member) \
467
0
  container_of_or_null(hashmap_iter_first(map, iter), type, member)
468
469
/* internal macro for hashmap_for_each_entry */
470
#define hashmap_iter_next_entry_offset(iter, offset) \
471
0
  container_of_or_null_offset(hashmap_iter_next(iter), offset)
472
473
/* internal macro for hashmap_for_each_entry */
474
#define hashmap_iter_first_entry_offset(map, iter, offset) \
475
0
  container_of_or_null_offset(hashmap_iter_first(map, iter), offset)
476
477
/*
478
 * iterate through @map using @iter, @var is a pointer to a type
479
 * containing a @member which is a "struct hashmap_entry"
480
 */
481
#define hashmap_for_each_entry(map, iter, var, member) \
482
0
  for (var = NULL, /* for systems without typeof */ \
483
0
       var = hashmap_iter_first_entry_offset(map, iter, \
484
0
            OFFSETOF_VAR(var, member)); \
485
0
    var; \
486
0
    var = hashmap_iter_next_entry_offset(iter, \
487
0
            OFFSETOF_VAR(var, member)))
488
489
/*
490
 * returns a pointer of type matching @keyvar, or NULL if nothing found.
491
 * @keyvar is a pointer to a struct containing a
492
 * "struct hashmap_entry" @member.
493
 */
494
#define hashmap_get_entry(map, keyvar, member, keydata) \
495
0
  container_of_or_null_offset( \
496
0
        hashmap_get(map, &(keyvar)->member, keydata), \
497
0
        OFFSETOF_VAR(keyvar, member))
498
499
#define hashmap_get_entry_from_hash(map, hash, keydata, type, member) \
500
0
  container_of_or_null(hashmap_get_from_hash(map, hash, keydata), \
501
0
        type, member)
502
/*
503
 * returns the next equal pointer to @var, or NULL if not found.
504
 * @var is a pointer of any type containing "struct hashmap_entry"
505
 * @member is the name of the "struct hashmap_entry" field
506
 */
507
#define hashmap_get_next_entry(map, var, member) \
508
0
  container_of_or_null_offset(hashmap_get_next(map, &(var)->member), \
509
0
        OFFSETOF_VAR(var, member))
510
511
/*
512
 * iterate @map starting from @var, where @var is a pointer of @type
513
 * and @member is the name of the "struct hashmap_entry" field in @type
514
 */
515
#define hashmap_for_each_entry_from(map, var, member) \
516
0
  for (; \
517
0
    var; \
518
0
    var = hashmap_get_next_entry(map, var, member))
519
520
/*
521
 * Disable item counting and automatic rehashing when adding/removing items.
522
 *
523
 * Normally, the hashmap keeps track of the number of items in the map
524
 * and uses it to dynamically resize it.  This (both the counting and
525
 * the resizing) can cause problems when the map is being used by
526
 * threaded callers (because the hashmap code does not know about the
527
 * locking strategy used by the threaded callers and therefore, does
528
 * not know how to protect the "private_size" counter).
529
 */
530
static inline void hashmap_disable_item_counting(struct hashmap *map)
531
0
{
532
0
  map->do_count_items = 0;
533
0
}
Unexecuted instantiation: add.c:hashmap_disable_item_counting
Unexecuted instantiation: am.c:hashmap_disable_item_counting
Unexecuted instantiation: apply.c:hashmap_disable_item_counting
Unexecuted instantiation: archive.c:hashmap_disable_item_counting
Unexecuted instantiation: bisect.c:hashmap_disable_item_counting
Unexecuted instantiation: blame.c:hashmap_disable_item_counting
Unexecuted instantiation: branch.c:hashmap_disable_item_counting
Unexecuted instantiation: bugreport.c:hashmap_disable_item_counting
Unexecuted instantiation: bundle.c:hashmap_disable_item_counting
Unexecuted instantiation: cat-file.c:hashmap_disable_item_counting
Unexecuted instantiation: check-attr.c:hashmap_disable_item_counting
Unexecuted instantiation: check-ignore.c:hashmap_disable_item_counting
Unexecuted instantiation: check-mailmap.c:hashmap_disable_item_counting
Unexecuted instantiation: check-ref-format.c:hashmap_disable_item_counting
Unexecuted instantiation: checkout--worker.c:hashmap_disable_item_counting
Unexecuted instantiation: checkout-index.c:hashmap_disable_item_counting
Unexecuted instantiation: checkout.c:hashmap_disable_item_counting
Unexecuted instantiation: clean.c:hashmap_disable_item_counting
Unexecuted instantiation: clone.c:hashmap_disable_item_counting
Unexecuted instantiation: column.c:hashmap_disable_item_counting
Unexecuted instantiation: commit-graph.c:hashmap_disable_item_counting
Unexecuted instantiation: commit-tree.c:hashmap_disable_item_counting
Unexecuted instantiation: commit.c:hashmap_disable_item_counting
Unexecuted instantiation: config.c:hashmap_disable_item_counting
Unexecuted instantiation: count-objects.c:hashmap_disable_item_counting
Unexecuted instantiation: credential-cache--daemon.c:hashmap_disable_item_counting
Unexecuted instantiation: credential-cache.c:hashmap_disable_item_counting
Unexecuted instantiation: credential-store.c:hashmap_disable_item_counting
Unexecuted instantiation: credential.c:hashmap_disable_item_counting
Unexecuted instantiation: describe.c:hashmap_disable_item_counting
Unexecuted instantiation: diagnose.c:hashmap_disable_item_counting
Unexecuted instantiation: diff-files.c:hashmap_disable_item_counting
Unexecuted instantiation: diff-index.c:hashmap_disable_item_counting
Unexecuted instantiation: diff-tree.c:hashmap_disable_item_counting
Unexecuted instantiation: diff.c:hashmap_disable_item_counting
Unexecuted instantiation: difftool.c:hashmap_disable_item_counting
Unexecuted instantiation: fast-export.c:hashmap_disable_item_counting
Unexecuted instantiation: fast-import.c:hashmap_disable_item_counting
Unexecuted instantiation: fetch-pack.c:hashmap_disable_item_counting
Unexecuted instantiation: fetch.c:hashmap_disable_item_counting
Unexecuted instantiation: fmt-merge-msg.c:hashmap_disable_item_counting
Unexecuted instantiation: for-each-ref.c:hashmap_disable_item_counting
Unexecuted instantiation: for-each-repo.c:hashmap_disable_item_counting
Unexecuted instantiation: fsck.c:hashmap_disable_item_counting
Unexecuted instantiation: fsmonitor--daemon.c:hashmap_disable_item_counting
Unexecuted instantiation: gc.c:hashmap_disable_item_counting
Unexecuted instantiation: get-tar-commit-id.c:hashmap_disable_item_counting
Unexecuted instantiation: grep.c:hashmap_disable_item_counting
Unexecuted instantiation: hash-object.c:hashmap_disable_item_counting
Unexecuted instantiation: help.c:hashmap_disable_item_counting
Unexecuted instantiation: hook.c:hashmap_disable_item_counting
Unexecuted instantiation: index-pack.c:hashmap_disable_item_counting
Unexecuted instantiation: init-db.c:hashmap_disable_item_counting
Unexecuted instantiation: interpret-trailers.c:hashmap_disable_item_counting
Unexecuted instantiation: log.c:hashmap_disable_item_counting
Unexecuted instantiation: ls-files.c:hashmap_disable_item_counting
Unexecuted instantiation: ls-remote.c:hashmap_disable_item_counting
Unexecuted instantiation: ls-tree.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-base.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-file.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-index.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-ours.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-recursive.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-tree.c:hashmap_disable_item_counting
Unexecuted instantiation: merge.c:hashmap_disable_item_counting
Unexecuted instantiation: mktag.c:hashmap_disable_item_counting
Unexecuted instantiation: mktree.c:hashmap_disable_item_counting
Unexecuted instantiation: multi-pack-index.c:hashmap_disable_item_counting
Unexecuted instantiation: mv.c:hashmap_disable_item_counting
Unexecuted instantiation: name-rev.c:hashmap_disable_item_counting
Unexecuted instantiation: notes.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-objects.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-redundant.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-refs.c:hashmap_disable_item_counting
Unexecuted instantiation: patch-id.c:hashmap_disable_item_counting
Unexecuted instantiation: prune.c:hashmap_disable_item_counting
Unexecuted instantiation: pull.c:hashmap_disable_item_counting
Unexecuted instantiation: push.c:hashmap_disable_item_counting
Unexecuted instantiation: range-diff.c:hashmap_disable_item_counting
Unexecuted instantiation: read-tree.c:hashmap_disable_item_counting
Unexecuted instantiation: rebase.c:hashmap_disable_item_counting
Unexecuted instantiation: receive-pack.c:hashmap_disable_item_counting
Unexecuted instantiation: reflog.c:hashmap_disable_item_counting
Unexecuted instantiation: refs.c:hashmap_disable_item_counting
Unexecuted instantiation: remote-ext.c:hashmap_disable_item_counting
Unexecuted instantiation: remote-fd.c:hashmap_disable_item_counting
Unexecuted instantiation: remote.c:hashmap_disable_item_counting
Unexecuted instantiation: repack.c:hashmap_disable_item_counting
Unexecuted instantiation: replace.c:hashmap_disable_item_counting
Unexecuted instantiation: replay.c:hashmap_disable_item_counting
Unexecuted instantiation: rerere.c:hashmap_disable_item_counting
Unexecuted instantiation: reset.c:hashmap_disable_item_counting
Unexecuted instantiation: rev-list.c:hashmap_disable_item_counting
Unexecuted instantiation: rev-parse.c:hashmap_disable_item_counting
Unexecuted instantiation: revert.c:hashmap_disable_item_counting
Unexecuted instantiation: rm.c:hashmap_disable_item_counting
Unexecuted instantiation: send-pack.c:hashmap_disable_item_counting
Unexecuted instantiation: shortlog.c:hashmap_disable_item_counting
Unexecuted instantiation: show-branch.c:hashmap_disable_item_counting
Unexecuted instantiation: show-index.c:hashmap_disable_item_counting
Unexecuted instantiation: show-ref.c:hashmap_disable_item_counting
Unexecuted instantiation: sparse-checkout.c:hashmap_disable_item_counting
Unexecuted instantiation: stash.c:hashmap_disable_item_counting
Unexecuted instantiation: stripspace.c:hashmap_disable_item_counting
Unexecuted instantiation: submodule--helper.c:hashmap_disable_item_counting
Unexecuted instantiation: symbolic-ref.c:hashmap_disable_item_counting
Unexecuted instantiation: tag.c:hashmap_disable_item_counting
Unexecuted instantiation: unpack-file.c:hashmap_disable_item_counting
Unexecuted instantiation: unpack-objects.c:hashmap_disable_item_counting
Unexecuted instantiation: update-index.c:hashmap_disable_item_counting
Unexecuted instantiation: update-ref.c:hashmap_disable_item_counting
Unexecuted instantiation: update-server-info.c:hashmap_disable_item_counting
Unexecuted instantiation: upload-archive.c:hashmap_disable_item_counting
Unexecuted instantiation: upload-pack.c:hashmap_disable_item_counting
Unexecuted instantiation: var.c:hashmap_disable_item_counting
Unexecuted instantiation: verify-commit.c:hashmap_disable_item_counting
Unexecuted instantiation: verify-pack.c:hashmap_disable_item_counting
Unexecuted instantiation: verify-tag.c:hashmap_disable_item_counting
Unexecuted instantiation: worktree.c:hashmap_disable_item_counting
Unexecuted instantiation: write-tree.c:hashmap_disable_item_counting
Unexecuted instantiation: git.c:hashmap_disable_item_counting
Unexecuted instantiation: add-interactive.c:hashmap_disable_item_counting
Unexecuted instantiation: add-patch.c:hashmap_disable_item_counting
Unexecuted instantiation: advice.c:hashmap_disable_item_counting
Unexecuted instantiation: alias.c:hashmap_disable_item_counting
Unexecuted instantiation: attr.c:hashmap_disable_item_counting
Unexecuted instantiation: bloom.c:hashmap_disable_item_counting
Unexecuted instantiation: bulk-checkin.c:hashmap_disable_item_counting
Unexecuted instantiation: bundle-uri.c:hashmap_disable_item_counting
Unexecuted instantiation: cache-tree.c:hashmap_disable_item_counting
Unexecuted instantiation: color.c:hashmap_disable_item_counting
Unexecuted instantiation: combine-diff.c:hashmap_disable_item_counting
Unexecuted instantiation: commit-reach.c:hashmap_disable_item_counting
Unexecuted instantiation: terminal.c:hashmap_disable_item_counting
Unexecuted instantiation: connect.c:hashmap_disable_item_counting
Unexecuted instantiation: connected.c:hashmap_disable_item_counting
Unexecuted instantiation: convert.c:hashmap_disable_item_counting
Unexecuted instantiation: csum-file.c:hashmap_disable_item_counting
Unexecuted instantiation: delta-islands.c:hashmap_disable_item_counting
Unexecuted instantiation: diff-lib.c:hashmap_disable_item_counting
Unexecuted instantiation: diff-no-index.c:hashmap_disable_item_counting
Unexecuted instantiation: diffcore-break.c:hashmap_disable_item_counting
Unexecuted instantiation: diffcore-rename.c:hashmap_disable_item_counting
Unexecuted instantiation: dir-iterator.c:hashmap_disable_item_counting
Unexecuted instantiation: dir.c:hashmap_disable_item_counting
Unexecuted instantiation: editor.c:hashmap_disable_item_counting
Unexecuted instantiation: entry.c:hashmap_disable_item_counting
Unexecuted instantiation: environment.c:hashmap_disable_item_counting
Unexecuted instantiation: fsmonitor.c:hashmap_disable_item_counting
Unexecuted instantiation: fsmonitor-ipc.c:hashmap_disable_item_counting
Unexecuted instantiation: fsmonitor-settings.c:hashmap_disable_item_counting
Unexecuted instantiation: gpg-interface.c:hashmap_disable_item_counting
Unexecuted instantiation: graph.c:hashmap_disable_item_counting
Unexecuted instantiation: hash-lookup.c:hashmap_disable_item_counting
Unexecuted instantiation: hashmap.c:hashmap_disable_item_counting
Unexecuted instantiation: hex.c:hashmap_disable_item_counting
Unexecuted instantiation: ident.c:hashmap_disable_item_counting
Unexecuted instantiation: line-log.c:hashmap_disable_item_counting
Unexecuted instantiation: list-objects-filter-options.c:hashmap_disable_item_counting
Unexecuted instantiation: list-objects.c:hashmap_disable_item_counting
Unexecuted instantiation: log-tree.c:hashmap_disable_item_counting
Unexecuted instantiation: mailinfo.c:hashmap_disable_item_counting
Unexecuted instantiation: mailmap.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-blobs.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-ll.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-ort.c:hashmap_disable_item_counting
Unexecuted instantiation: merge-ort-wrappers.c:hashmap_disable_item_counting
Unexecuted instantiation: midx.c:hashmap_disable_item_counting
Unexecuted instantiation: midx-write.c:hashmap_disable_item_counting
Unexecuted instantiation: name-hash.c:hashmap_disable_item_counting
Unexecuted instantiation: notes-cache.c:hashmap_disable_item_counting
Unexecuted instantiation: notes-merge.c:hashmap_disable_item_counting
Unexecuted instantiation: notes-utils.c:hashmap_disable_item_counting
Unexecuted instantiation: object-file-convert.c:hashmap_disable_item_counting
Unexecuted instantiation: object-file.c:hashmap_disable_item_counting
Unexecuted instantiation: object-name.c:hashmap_disable_item_counting
Unexecuted instantiation: object.c:hashmap_disable_item_counting
Unexecuted instantiation: oid-array.c:hashmap_disable_item_counting
Unexecuted instantiation: oidmap.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-bitmap-write.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-bitmap.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-check.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-mtimes.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-revindex.c:hashmap_disable_item_counting
Unexecuted instantiation: pack-write.c:hashmap_disable_item_counting
Unexecuted instantiation: packfile.c:hashmap_disable_item_counting
Unexecuted instantiation: pager.c:hashmap_disable_item_counting
Unexecuted instantiation: parallel-checkout.c:hashmap_disable_item_counting
Unexecuted instantiation: parse-options-cb.c:hashmap_disable_item_counting
Unexecuted instantiation: patch-ids.c:hashmap_disable_item_counting
Unexecuted instantiation: path.c:hashmap_disable_item_counting
Unexecuted instantiation: pathspec.c:hashmap_disable_item_counting
Unexecuted instantiation: preload-index.c:hashmap_disable_item_counting
Unexecuted instantiation: pretty.c:hashmap_disable_item_counting
Unexecuted instantiation: progress.c:hashmap_disable_item_counting
Unexecuted instantiation: promisor-remote.c:hashmap_disable_item_counting
Unexecuted instantiation: protocol.c:hashmap_disable_item_counting
Unexecuted instantiation: prune-packed.c:hashmap_disable_item_counting
Unexecuted instantiation: pseudo-merge.c:hashmap_disable_item_counting
Unexecuted instantiation: reachable.c:hashmap_disable_item_counting
Unexecuted instantiation: read-cache.c:hashmap_disable_item_counting
Unexecuted instantiation: rebase-interactive.c:hashmap_disable_item_counting
Unexecuted instantiation: ref-filter.c:hashmap_disable_item_counting
Unexecuted instantiation: reflog-walk.c:hashmap_disable_item_counting
Unexecuted instantiation: debug.c:hashmap_disable_item_counting
Unexecuted instantiation: files-backend.c:hashmap_disable_item_counting
Unexecuted instantiation: reftable-backend.c:hashmap_disable_item_counting
Unexecuted instantiation: iterator.c:hashmap_disable_item_counting
Unexecuted instantiation: packed-backend.c:hashmap_disable_item_counting
Unexecuted instantiation: ref-cache.c:hashmap_disable_item_counting
Unexecuted instantiation: refspec.c:hashmap_disable_item_counting
Unexecuted instantiation: replace-object.c:hashmap_disable_item_counting
Unexecuted instantiation: repo-settings.c:hashmap_disable_item_counting
Unexecuted instantiation: repository.c:hashmap_disable_item_counting
Unexecuted instantiation: resolve-undo.c:hashmap_disable_item_counting
Unexecuted instantiation: revision.c:hashmap_disable_item_counting
Unexecuted instantiation: run-command.c:hashmap_disable_item_counting
Unexecuted instantiation: sequencer.c:hashmap_disable_item_counting
Unexecuted instantiation: serve.c:hashmap_disable_item_counting
Unexecuted instantiation: server-info.c:hashmap_disable_item_counting
Unexecuted instantiation: setup.c:hashmap_disable_item_counting
Unexecuted instantiation: shallow.c:hashmap_disable_item_counting
Unexecuted instantiation: sideband.c:hashmap_disable_item_counting
Unexecuted instantiation: sparse-index.c:hashmap_disable_item_counting
Unexecuted instantiation: split-index.c:hashmap_disable_item_counting
Unexecuted instantiation: streaming.c:hashmap_disable_item_counting
Unexecuted instantiation: strmap.c:hashmap_disable_item_counting
Unexecuted instantiation: sub-process.c:hashmap_disable_item_counting
Unexecuted instantiation: submodule-config.c:hashmap_disable_item_counting
Unexecuted instantiation: submodule.c:hashmap_disable_item_counting
Unexecuted instantiation: symlinks.c:hashmap_disable_item_counting
Unexecuted instantiation: tmp-objdir.c:hashmap_disable_item_counting
Unexecuted instantiation: trace.c:hashmap_disable_item_counting
Unexecuted instantiation: trace2.c:hashmap_disable_item_counting
Unexecuted instantiation: tr2_cfg.c:hashmap_disable_item_counting
Unexecuted instantiation: tr2_sysenv.c:hashmap_disable_item_counting
Unexecuted instantiation: tr2_tgt_event.c:hashmap_disable_item_counting
Unexecuted instantiation: tr2_tgt_normal.c:hashmap_disable_item_counting
Unexecuted instantiation: tr2_tgt_perf.c:hashmap_disable_item_counting
Unexecuted instantiation: trailer.c:hashmap_disable_item_counting
Unexecuted instantiation: transport-helper.c:hashmap_disable_item_counting
Unexecuted instantiation: transport.c:hashmap_disable_item_counting
Unexecuted instantiation: tree-diff.c:hashmap_disable_item_counting
Unexecuted instantiation: tree-walk.c:hashmap_disable_item_counting
Unexecuted instantiation: tree.c:hashmap_disable_item_counting
Unexecuted instantiation: unpack-trees.c:hashmap_disable_item_counting
Unexecuted instantiation: urlmatch.c:hashmap_disable_item_counting
Unexecuted instantiation: userdiff.c:hashmap_disable_item_counting
Unexecuted instantiation: versioncmp.c:hashmap_disable_item_counting
Unexecuted instantiation: wt-status.c:hashmap_disable_item_counting
Unexecuted instantiation: xdiff-interface.c:hashmap_disable_item_counting
Unexecuted instantiation: alloc.c:hashmap_disable_item_counting
Unexecuted instantiation: archive-tar.c:hashmap_disable_item_counting
Unexecuted instantiation: archive-zip.c:hashmap_disable_item_counting
Unexecuted instantiation: chunk-format.c:hashmap_disable_item_counting
Unexecuted instantiation: fetch-negotiator.c:hashmap_disable_item_counting
Unexecuted instantiation: list-objects-filter.c:hashmap_disable_item_counting
Unexecuted instantiation: loose.c:hashmap_disable_item_counting
Unexecuted instantiation: ls-refs.c:hashmap_disable_item_counting
Unexecuted instantiation: match-trees.c:hashmap_disable_item_counting
Unexecuted instantiation: default.c:hashmap_disable_item_counting
Unexecuted instantiation: skipping.c:hashmap_disable_item_counting
Unexecuted instantiation: protocol-caps.c:hashmap_disable_item_counting
Unexecuted instantiation: error.c:hashmap_disable_item_counting
Unexecuted instantiation: iter.c:hashmap_disable_item_counting
Unexecuted instantiation: publicbasics.c:hashmap_disable_item_counting
Unexecuted instantiation: reader.c:hashmap_disable_item_counting
Unexecuted instantiation: record.c:hashmap_disable_item_counting
Unexecuted instantiation: stack.c:hashmap_disable_item_counting
Unexecuted instantiation: writer.c:hashmap_disable_item_counting
Unexecuted instantiation: basics.c:hashmap_disable_item_counting
Unexecuted instantiation: block.c:hashmap_disable_item_counting
Unexecuted instantiation: blocksource.c:hashmap_disable_item_counting
Unexecuted instantiation: merged.c:hashmap_disable_item_counting
Unexecuted instantiation: pq.c:hashmap_disable_item_counting
Unexecuted instantiation: common-main.c:hashmap_disable_item_counting
534
535
/*
536
 * Re-enable item counting when adding/removing items.
537
 * If counting is currently disabled, it will force count them.
538
 * It WILL NOT automatically rehash them.
539
 */
540
static inline void hashmap_enable_item_counting(struct hashmap *map)
541
0
{
542
0
  unsigned int n = 0;
543
0
  struct hashmap_iter iter;
544
545
0
  if (map->do_count_items)
546
0
    return;
547
548
0
  hashmap_iter_init(map, &iter);
549
0
  while (hashmap_iter_next(&iter))
550
0
    n++;
551
552
0
  map->do_count_items = 1;
553
0
  map->private_size = n;
554
0
}
Unexecuted instantiation: add.c:hashmap_enable_item_counting
Unexecuted instantiation: am.c:hashmap_enable_item_counting
Unexecuted instantiation: apply.c:hashmap_enable_item_counting
Unexecuted instantiation: archive.c:hashmap_enable_item_counting
Unexecuted instantiation: bisect.c:hashmap_enable_item_counting
Unexecuted instantiation: blame.c:hashmap_enable_item_counting
Unexecuted instantiation: branch.c:hashmap_enable_item_counting
Unexecuted instantiation: bugreport.c:hashmap_enable_item_counting
Unexecuted instantiation: bundle.c:hashmap_enable_item_counting
Unexecuted instantiation: cat-file.c:hashmap_enable_item_counting
Unexecuted instantiation: check-attr.c:hashmap_enable_item_counting
Unexecuted instantiation: check-ignore.c:hashmap_enable_item_counting
Unexecuted instantiation: check-mailmap.c:hashmap_enable_item_counting
Unexecuted instantiation: check-ref-format.c:hashmap_enable_item_counting
Unexecuted instantiation: checkout--worker.c:hashmap_enable_item_counting
Unexecuted instantiation: checkout-index.c:hashmap_enable_item_counting
Unexecuted instantiation: checkout.c:hashmap_enable_item_counting
Unexecuted instantiation: clean.c:hashmap_enable_item_counting
Unexecuted instantiation: clone.c:hashmap_enable_item_counting
Unexecuted instantiation: column.c:hashmap_enable_item_counting
Unexecuted instantiation: commit-graph.c:hashmap_enable_item_counting
Unexecuted instantiation: commit-tree.c:hashmap_enable_item_counting
Unexecuted instantiation: commit.c:hashmap_enable_item_counting
Unexecuted instantiation: config.c:hashmap_enable_item_counting
Unexecuted instantiation: count-objects.c:hashmap_enable_item_counting
Unexecuted instantiation: credential-cache--daemon.c:hashmap_enable_item_counting
Unexecuted instantiation: credential-cache.c:hashmap_enable_item_counting
Unexecuted instantiation: credential-store.c:hashmap_enable_item_counting
Unexecuted instantiation: credential.c:hashmap_enable_item_counting
Unexecuted instantiation: describe.c:hashmap_enable_item_counting
Unexecuted instantiation: diagnose.c:hashmap_enable_item_counting
Unexecuted instantiation: diff-files.c:hashmap_enable_item_counting
Unexecuted instantiation: diff-index.c:hashmap_enable_item_counting
Unexecuted instantiation: diff-tree.c:hashmap_enable_item_counting
Unexecuted instantiation: diff.c:hashmap_enable_item_counting
Unexecuted instantiation: difftool.c:hashmap_enable_item_counting
Unexecuted instantiation: fast-export.c:hashmap_enable_item_counting
Unexecuted instantiation: fast-import.c:hashmap_enable_item_counting
Unexecuted instantiation: fetch-pack.c:hashmap_enable_item_counting
Unexecuted instantiation: fetch.c:hashmap_enable_item_counting
Unexecuted instantiation: fmt-merge-msg.c:hashmap_enable_item_counting
Unexecuted instantiation: for-each-ref.c:hashmap_enable_item_counting
Unexecuted instantiation: for-each-repo.c:hashmap_enable_item_counting
Unexecuted instantiation: fsck.c:hashmap_enable_item_counting
Unexecuted instantiation: fsmonitor--daemon.c:hashmap_enable_item_counting
Unexecuted instantiation: gc.c:hashmap_enable_item_counting
Unexecuted instantiation: get-tar-commit-id.c:hashmap_enable_item_counting
Unexecuted instantiation: grep.c:hashmap_enable_item_counting
Unexecuted instantiation: hash-object.c:hashmap_enable_item_counting
Unexecuted instantiation: help.c:hashmap_enable_item_counting
Unexecuted instantiation: hook.c:hashmap_enable_item_counting
Unexecuted instantiation: index-pack.c:hashmap_enable_item_counting
Unexecuted instantiation: init-db.c:hashmap_enable_item_counting
Unexecuted instantiation: interpret-trailers.c:hashmap_enable_item_counting
Unexecuted instantiation: log.c:hashmap_enable_item_counting
Unexecuted instantiation: ls-files.c:hashmap_enable_item_counting
Unexecuted instantiation: ls-remote.c:hashmap_enable_item_counting
Unexecuted instantiation: ls-tree.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-base.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-file.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-index.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-ours.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-recursive.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-tree.c:hashmap_enable_item_counting
Unexecuted instantiation: merge.c:hashmap_enable_item_counting
Unexecuted instantiation: mktag.c:hashmap_enable_item_counting
Unexecuted instantiation: mktree.c:hashmap_enable_item_counting
Unexecuted instantiation: multi-pack-index.c:hashmap_enable_item_counting
Unexecuted instantiation: mv.c:hashmap_enable_item_counting
Unexecuted instantiation: name-rev.c:hashmap_enable_item_counting
Unexecuted instantiation: notes.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-objects.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-redundant.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-refs.c:hashmap_enable_item_counting
Unexecuted instantiation: patch-id.c:hashmap_enable_item_counting
Unexecuted instantiation: prune.c:hashmap_enable_item_counting
Unexecuted instantiation: pull.c:hashmap_enable_item_counting
Unexecuted instantiation: push.c:hashmap_enable_item_counting
Unexecuted instantiation: range-diff.c:hashmap_enable_item_counting
Unexecuted instantiation: read-tree.c:hashmap_enable_item_counting
Unexecuted instantiation: rebase.c:hashmap_enable_item_counting
Unexecuted instantiation: receive-pack.c:hashmap_enable_item_counting
Unexecuted instantiation: reflog.c:hashmap_enable_item_counting
Unexecuted instantiation: refs.c:hashmap_enable_item_counting
Unexecuted instantiation: remote-ext.c:hashmap_enable_item_counting
Unexecuted instantiation: remote-fd.c:hashmap_enable_item_counting
Unexecuted instantiation: remote.c:hashmap_enable_item_counting
Unexecuted instantiation: repack.c:hashmap_enable_item_counting
Unexecuted instantiation: replace.c:hashmap_enable_item_counting
Unexecuted instantiation: replay.c:hashmap_enable_item_counting
Unexecuted instantiation: rerere.c:hashmap_enable_item_counting
Unexecuted instantiation: reset.c:hashmap_enable_item_counting
Unexecuted instantiation: rev-list.c:hashmap_enable_item_counting
Unexecuted instantiation: rev-parse.c:hashmap_enable_item_counting
Unexecuted instantiation: revert.c:hashmap_enable_item_counting
Unexecuted instantiation: rm.c:hashmap_enable_item_counting
Unexecuted instantiation: send-pack.c:hashmap_enable_item_counting
Unexecuted instantiation: shortlog.c:hashmap_enable_item_counting
Unexecuted instantiation: show-branch.c:hashmap_enable_item_counting
Unexecuted instantiation: show-index.c:hashmap_enable_item_counting
Unexecuted instantiation: show-ref.c:hashmap_enable_item_counting
Unexecuted instantiation: sparse-checkout.c:hashmap_enable_item_counting
Unexecuted instantiation: stash.c:hashmap_enable_item_counting
Unexecuted instantiation: stripspace.c:hashmap_enable_item_counting
Unexecuted instantiation: submodule--helper.c:hashmap_enable_item_counting
Unexecuted instantiation: symbolic-ref.c:hashmap_enable_item_counting
Unexecuted instantiation: tag.c:hashmap_enable_item_counting
Unexecuted instantiation: unpack-file.c:hashmap_enable_item_counting
Unexecuted instantiation: unpack-objects.c:hashmap_enable_item_counting
Unexecuted instantiation: update-index.c:hashmap_enable_item_counting
Unexecuted instantiation: update-ref.c:hashmap_enable_item_counting
Unexecuted instantiation: update-server-info.c:hashmap_enable_item_counting
Unexecuted instantiation: upload-archive.c:hashmap_enable_item_counting
Unexecuted instantiation: upload-pack.c:hashmap_enable_item_counting
Unexecuted instantiation: var.c:hashmap_enable_item_counting
Unexecuted instantiation: verify-commit.c:hashmap_enable_item_counting
Unexecuted instantiation: verify-pack.c:hashmap_enable_item_counting
Unexecuted instantiation: verify-tag.c:hashmap_enable_item_counting
Unexecuted instantiation: worktree.c:hashmap_enable_item_counting
Unexecuted instantiation: write-tree.c:hashmap_enable_item_counting
Unexecuted instantiation: git.c:hashmap_enable_item_counting
Unexecuted instantiation: add-interactive.c:hashmap_enable_item_counting
Unexecuted instantiation: add-patch.c:hashmap_enable_item_counting
Unexecuted instantiation: advice.c:hashmap_enable_item_counting
Unexecuted instantiation: alias.c:hashmap_enable_item_counting
Unexecuted instantiation: attr.c:hashmap_enable_item_counting
Unexecuted instantiation: bloom.c:hashmap_enable_item_counting
Unexecuted instantiation: bulk-checkin.c:hashmap_enable_item_counting
Unexecuted instantiation: bundle-uri.c:hashmap_enable_item_counting
Unexecuted instantiation: cache-tree.c:hashmap_enable_item_counting
Unexecuted instantiation: color.c:hashmap_enable_item_counting
Unexecuted instantiation: combine-diff.c:hashmap_enable_item_counting
Unexecuted instantiation: commit-reach.c:hashmap_enable_item_counting
Unexecuted instantiation: terminal.c:hashmap_enable_item_counting
Unexecuted instantiation: connect.c:hashmap_enable_item_counting
Unexecuted instantiation: connected.c:hashmap_enable_item_counting
Unexecuted instantiation: convert.c:hashmap_enable_item_counting
Unexecuted instantiation: csum-file.c:hashmap_enable_item_counting
Unexecuted instantiation: delta-islands.c:hashmap_enable_item_counting
Unexecuted instantiation: diff-lib.c:hashmap_enable_item_counting
Unexecuted instantiation: diff-no-index.c:hashmap_enable_item_counting
Unexecuted instantiation: diffcore-break.c:hashmap_enable_item_counting
Unexecuted instantiation: diffcore-rename.c:hashmap_enable_item_counting
Unexecuted instantiation: dir-iterator.c:hashmap_enable_item_counting
Unexecuted instantiation: dir.c:hashmap_enable_item_counting
Unexecuted instantiation: editor.c:hashmap_enable_item_counting
Unexecuted instantiation: entry.c:hashmap_enable_item_counting
Unexecuted instantiation: environment.c:hashmap_enable_item_counting
Unexecuted instantiation: fsmonitor.c:hashmap_enable_item_counting
Unexecuted instantiation: fsmonitor-ipc.c:hashmap_enable_item_counting
Unexecuted instantiation: fsmonitor-settings.c:hashmap_enable_item_counting
Unexecuted instantiation: gpg-interface.c:hashmap_enable_item_counting
Unexecuted instantiation: graph.c:hashmap_enable_item_counting
Unexecuted instantiation: hash-lookup.c:hashmap_enable_item_counting
Unexecuted instantiation: hashmap.c:hashmap_enable_item_counting
Unexecuted instantiation: hex.c:hashmap_enable_item_counting
Unexecuted instantiation: ident.c:hashmap_enable_item_counting
Unexecuted instantiation: line-log.c:hashmap_enable_item_counting
Unexecuted instantiation: list-objects-filter-options.c:hashmap_enable_item_counting
Unexecuted instantiation: list-objects.c:hashmap_enable_item_counting
Unexecuted instantiation: log-tree.c:hashmap_enable_item_counting
Unexecuted instantiation: mailinfo.c:hashmap_enable_item_counting
Unexecuted instantiation: mailmap.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-blobs.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-ll.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-ort.c:hashmap_enable_item_counting
Unexecuted instantiation: merge-ort-wrappers.c:hashmap_enable_item_counting
Unexecuted instantiation: midx.c:hashmap_enable_item_counting
Unexecuted instantiation: midx-write.c:hashmap_enable_item_counting
Unexecuted instantiation: name-hash.c:hashmap_enable_item_counting
Unexecuted instantiation: notes-cache.c:hashmap_enable_item_counting
Unexecuted instantiation: notes-merge.c:hashmap_enable_item_counting
Unexecuted instantiation: notes-utils.c:hashmap_enable_item_counting
Unexecuted instantiation: object-file-convert.c:hashmap_enable_item_counting
Unexecuted instantiation: object-file.c:hashmap_enable_item_counting
Unexecuted instantiation: object-name.c:hashmap_enable_item_counting
Unexecuted instantiation: object.c:hashmap_enable_item_counting
Unexecuted instantiation: oid-array.c:hashmap_enable_item_counting
Unexecuted instantiation: oidmap.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-bitmap-write.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-bitmap.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-check.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-mtimes.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-revindex.c:hashmap_enable_item_counting
Unexecuted instantiation: pack-write.c:hashmap_enable_item_counting
Unexecuted instantiation: packfile.c:hashmap_enable_item_counting
Unexecuted instantiation: pager.c:hashmap_enable_item_counting
Unexecuted instantiation: parallel-checkout.c:hashmap_enable_item_counting
Unexecuted instantiation: parse-options-cb.c:hashmap_enable_item_counting
Unexecuted instantiation: patch-ids.c:hashmap_enable_item_counting
Unexecuted instantiation: path.c:hashmap_enable_item_counting
Unexecuted instantiation: pathspec.c:hashmap_enable_item_counting
Unexecuted instantiation: preload-index.c:hashmap_enable_item_counting
Unexecuted instantiation: pretty.c:hashmap_enable_item_counting
Unexecuted instantiation: progress.c:hashmap_enable_item_counting
Unexecuted instantiation: promisor-remote.c:hashmap_enable_item_counting
Unexecuted instantiation: protocol.c:hashmap_enable_item_counting
Unexecuted instantiation: prune-packed.c:hashmap_enable_item_counting
Unexecuted instantiation: pseudo-merge.c:hashmap_enable_item_counting
Unexecuted instantiation: reachable.c:hashmap_enable_item_counting
Unexecuted instantiation: read-cache.c:hashmap_enable_item_counting
Unexecuted instantiation: rebase-interactive.c:hashmap_enable_item_counting
Unexecuted instantiation: ref-filter.c:hashmap_enable_item_counting
Unexecuted instantiation: reflog-walk.c:hashmap_enable_item_counting
Unexecuted instantiation: debug.c:hashmap_enable_item_counting
Unexecuted instantiation: files-backend.c:hashmap_enable_item_counting
Unexecuted instantiation: reftable-backend.c:hashmap_enable_item_counting
Unexecuted instantiation: iterator.c:hashmap_enable_item_counting
Unexecuted instantiation: packed-backend.c:hashmap_enable_item_counting
Unexecuted instantiation: ref-cache.c:hashmap_enable_item_counting
Unexecuted instantiation: refspec.c:hashmap_enable_item_counting
Unexecuted instantiation: replace-object.c:hashmap_enable_item_counting
Unexecuted instantiation: repo-settings.c:hashmap_enable_item_counting
Unexecuted instantiation: repository.c:hashmap_enable_item_counting
Unexecuted instantiation: resolve-undo.c:hashmap_enable_item_counting
Unexecuted instantiation: revision.c:hashmap_enable_item_counting
Unexecuted instantiation: run-command.c:hashmap_enable_item_counting
Unexecuted instantiation: sequencer.c:hashmap_enable_item_counting
Unexecuted instantiation: serve.c:hashmap_enable_item_counting
Unexecuted instantiation: server-info.c:hashmap_enable_item_counting
Unexecuted instantiation: setup.c:hashmap_enable_item_counting
Unexecuted instantiation: shallow.c:hashmap_enable_item_counting
Unexecuted instantiation: sideband.c:hashmap_enable_item_counting
Unexecuted instantiation: sparse-index.c:hashmap_enable_item_counting
Unexecuted instantiation: split-index.c:hashmap_enable_item_counting
Unexecuted instantiation: streaming.c:hashmap_enable_item_counting
Unexecuted instantiation: strmap.c:hashmap_enable_item_counting
Unexecuted instantiation: sub-process.c:hashmap_enable_item_counting
Unexecuted instantiation: submodule-config.c:hashmap_enable_item_counting
Unexecuted instantiation: submodule.c:hashmap_enable_item_counting
Unexecuted instantiation: symlinks.c:hashmap_enable_item_counting
Unexecuted instantiation: tmp-objdir.c:hashmap_enable_item_counting
Unexecuted instantiation: trace.c:hashmap_enable_item_counting
Unexecuted instantiation: trace2.c:hashmap_enable_item_counting
Unexecuted instantiation: tr2_cfg.c:hashmap_enable_item_counting
Unexecuted instantiation: tr2_sysenv.c:hashmap_enable_item_counting
Unexecuted instantiation: tr2_tgt_event.c:hashmap_enable_item_counting
Unexecuted instantiation: tr2_tgt_normal.c:hashmap_enable_item_counting
Unexecuted instantiation: tr2_tgt_perf.c:hashmap_enable_item_counting
Unexecuted instantiation: trailer.c:hashmap_enable_item_counting
Unexecuted instantiation: transport-helper.c:hashmap_enable_item_counting
Unexecuted instantiation: transport.c:hashmap_enable_item_counting
Unexecuted instantiation: tree-diff.c:hashmap_enable_item_counting
Unexecuted instantiation: tree-walk.c:hashmap_enable_item_counting
Unexecuted instantiation: tree.c:hashmap_enable_item_counting
Unexecuted instantiation: unpack-trees.c:hashmap_enable_item_counting
Unexecuted instantiation: urlmatch.c:hashmap_enable_item_counting
Unexecuted instantiation: userdiff.c:hashmap_enable_item_counting
Unexecuted instantiation: versioncmp.c:hashmap_enable_item_counting
Unexecuted instantiation: wt-status.c:hashmap_enable_item_counting
Unexecuted instantiation: xdiff-interface.c:hashmap_enable_item_counting
Unexecuted instantiation: alloc.c:hashmap_enable_item_counting
Unexecuted instantiation: archive-tar.c:hashmap_enable_item_counting
Unexecuted instantiation: archive-zip.c:hashmap_enable_item_counting
Unexecuted instantiation: chunk-format.c:hashmap_enable_item_counting
Unexecuted instantiation: fetch-negotiator.c:hashmap_enable_item_counting
Unexecuted instantiation: list-objects-filter.c:hashmap_enable_item_counting
Unexecuted instantiation: loose.c:hashmap_enable_item_counting
Unexecuted instantiation: ls-refs.c:hashmap_enable_item_counting
Unexecuted instantiation: match-trees.c:hashmap_enable_item_counting
Unexecuted instantiation: default.c:hashmap_enable_item_counting
Unexecuted instantiation: skipping.c:hashmap_enable_item_counting
Unexecuted instantiation: protocol-caps.c:hashmap_enable_item_counting
Unexecuted instantiation: error.c:hashmap_enable_item_counting
Unexecuted instantiation: iter.c:hashmap_enable_item_counting
Unexecuted instantiation: publicbasics.c:hashmap_enable_item_counting
Unexecuted instantiation: reader.c:hashmap_enable_item_counting
Unexecuted instantiation: record.c:hashmap_enable_item_counting
Unexecuted instantiation: stack.c:hashmap_enable_item_counting
Unexecuted instantiation: writer.c:hashmap_enable_item_counting
Unexecuted instantiation: basics.c:hashmap_enable_item_counting
Unexecuted instantiation: block.c:hashmap_enable_item_counting
Unexecuted instantiation: blocksource.c:hashmap_enable_item_counting
Unexecuted instantiation: merged.c:hashmap_enable_item_counting
Unexecuted instantiation: pq.c:hashmap_enable_item_counting
Unexecuted instantiation: common-main.c:hashmap_enable_item_counting
555
556
/* String interning */
557
558
/*
559
 * Returns the unique, interned version of the specified string or data,
560
 * similar to the `String.intern` API in Java and .NET, respectively.
561
 * Interned strings remain valid for the entire lifetime of the process.
562
 *
563
 * Can be used as `[x]strdup()` or `xmemdupz` replacement, except that interned
564
 * strings / data must not be modified or freed.
565
 *
566
 * Interned strings are best used for short strings with high probability of
567
 * duplicates.
568
 *
569
 * Uses a hashmap to store the pool of interned strings.
570
 */
571
const void *memintern(const void *data, size_t len);
572
static inline const char *strintern(const char *string)
573
0
{
574
0
  return memintern(string, strlen(string));
575
0
}
Unexecuted instantiation: add.c:strintern
Unexecuted instantiation: am.c:strintern
Unexecuted instantiation: apply.c:strintern
Unexecuted instantiation: archive.c:strintern
Unexecuted instantiation: bisect.c:strintern
Unexecuted instantiation: blame.c:strintern
Unexecuted instantiation: branch.c:strintern
Unexecuted instantiation: bugreport.c:strintern
Unexecuted instantiation: bundle.c:strintern
Unexecuted instantiation: cat-file.c:strintern
Unexecuted instantiation: check-attr.c:strintern
Unexecuted instantiation: check-ignore.c:strintern
Unexecuted instantiation: check-mailmap.c:strintern
Unexecuted instantiation: check-ref-format.c:strintern
Unexecuted instantiation: checkout--worker.c:strintern
Unexecuted instantiation: checkout-index.c:strintern
Unexecuted instantiation: checkout.c:strintern
Unexecuted instantiation: clean.c:strintern
Unexecuted instantiation: clone.c:strintern
Unexecuted instantiation: column.c:strintern
Unexecuted instantiation: commit-graph.c:strintern
Unexecuted instantiation: commit-tree.c:strintern
Unexecuted instantiation: commit.c:strintern
Unexecuted instantiation: config.c:strintern
Unexecuted instantiation: count-objects.c:strintern
Unexecuted instantiation: credential-cache--daemon.c:strintern
Unexecuted instantiation: credential-cache.c:strintern
Unexecuted instantiation: credential-store.c:strintern
Unexecuted instantiation: credential.c:strintern
Unexecuted instantiation: describe.c:strintern
Unexecuted instantiation: diagnose.c:strintern
Unexecuted instantiation: diff-files.c:strintern
Unexecuted instantiation: diff-index.c:strintern
Unexecuted instantiation: diff-tree.c:strintern
Unexecuted instantiation: diff.c:strintern
Unexecuted instantiation: difftool.c:strintern
Unexecuted instantiation: fast-export.c:strintern
Unexecuted instantiation: fast-import.c:strintern
Unexecuted instantiation: fetch-pack.c:strintern
Unexecuted instantiation: fetch.c:strintern
Unexecuted instantiation: fmt-merge-msg.c:strintern
Unexecuted instantiation: for-each-ref.c:strintern
Unexecuted instantiation: for-each-repo.c:strintern
Unexecuted instantiation: fsck.c:strintern
Unexecuted instantiation: fsmonitor--daemon.c:strintern
Unexecuted instantiation: gc.c:strintern
Unexecuted instantiation: get-tar-commit-id.c:strintern
Unexecuted instantiation: grep.c:strintern
Unexecuted instantiation: hash-object.c:strintern
Unexecuted instantiation: help.c:strintern
Unexecuted instantiation: hook.c:strintern
Unexecuted instantiation: index-pack.c:strintern
Unexecuted instantiation: init-db.c:strintern
Unexecuted instantiation: interpret-trailers.c:strintern
Unexecuted instantiation: log.c:strintern
Unexecuted instantiation: ls-files.c:strintern
Unexecuted instantiation: ls-remote.c:strintern
Unexecuted instantiation: ls-tree.c:strintern
Unexecuted instantiation: merge-base.c:strintern
Unexecuted instantiation: merge-file.c:strintern
Unexecuted instantiation: merge-index.c:strintern
Unexecuted instantiation: merge-ours.c:strintern
Unexecuted instantiation: merge-recursive.c:strintern
Unexecuted instantiation: merge-tree.c:strintern
Unexecuted instantiation: merge.c:strintern
Unexecuted instantiation: mktag.c:strintern
Unexecuted instantiation: mktree.c:strintern
Unexecuted instantiation: multi-pack-index.c:strintern
Unexecuted instantiation: mv.c:strintern
Unexecuted instantiation: name-rev.c:strintern
Unexecuted instantiation: notes.c:strintern
Unexecuted instantiation: pack-objects.c:strintern
Unexecuted instantiation: pack-redundant.c:strintern
Unexecuted instantiation: pack-refs.c:strintern
Unexecuted instantiation: patch-id.c:strintern
Unexecuted instantiation: prune.c:strintern
Unexecuted instantiation: pull.c:strintern
Unexecuted instantiation: push.c:strintern
Unexecuted instantiation: range-diff.c:strintern
Unexecuted instantiation: read-tree.c:strintern
Unexecuted instantiation: rebase.c:strintern
Unexecuted instantiation: receive-pack.c:strintern
Unexecuted instantiation: reflog.c:strintern
Unexecuted instantiation: refs.c:strintern
Unexecuted instantiation: remote-ext.c:strintern
Unexecuted instantiation: remote-fd.c:strintern
Unexecuted instantiation: remote.c:strintern
Unexecuted instantiation: repack.c:strintern
Unexecuted instantiation: replace.c:strintern
Unexecuted instantiation: replay.c:strintern
Unexecuted instantiation: rerere.c:strintern
Unexecuted instantiation: reset.c:strintern
Unexecuted instantiation: rev-list.c:strintern
Unexecuted instantiation: rev-parse.c:strintern
Unexecuted instantiation: revert.c:strintern
Unexecuted instantiation: rm.c:strintern
Unexecuted instantiation: send-pack.c:strintern
Unexecuted instantiation: shortlog.c:strintern
Unexecuted instantiation: show-branch.c:strintern
Unexecuted instantiation: show-index.c:strintern
Unexecuted instantiation: show-ref.c:strintern
Unexecuted instantiation: sparse-checkout.c:strintern
Unexecuted instantiation: stash.c:strintern
Unexecuted instantiation: stripspace.c:strintern
Unexecuted instantiation: submodule--helper.c:strintern
Unexecuted instantiation: symbolic-ref.c:strintern
Unexecuted instantiation: tag.c:strintern
Unexecuted instantiation: unpack-file.c:strintern
Unexecuted instantiation: unpack-objects.c:strintern
Unexecuted instantiation: update-index.c:strintern
Unexecuted instantiation: update-ref.c:strintern
Unexecuted instantiation: update-server-info.c:strintern
Unexecuted instantiation: upload-archive.c:strintern
Unexecuted instantiation: upload-pack.c:strintern
Unexecuted instantiation: var.c:strintern
Unexecuted instantiation: verify-commit.c:strintern
Unexecuted instantiation: verify-pack.c:strintern
Unexecuted instantiation: verify-tag.c:strintern
Unexecuted instantiation: worktree.c:strintern
Unexecuted instantiation: write-tree.c:strintern
Unexecuted instantiation: git.c:strintern
Unexecuted instantiation: add-interactive.c:strintern
Unexecuted instantiation: add-patch.c:strintern
Unexecuted instantiation: advice.c:strintern
Unexecuted instantiation: alias.c:strintern
Unexecuted instantiation: attr.c:strintern
Unexecuted instantiation: bloom.c:strintern
Unexecuted instantiation: bulk-checkin.c:strintern
Unexecuted instantiation: bundle-uri.c:strintern
Unexecuted instantiation: cache-tree.c:strintern
Unexecuted instantiation: color.c:strintern
Unexecuted instantiation: combine-diff.c:strintern
Unexecuted instantiation: commit-reach.c:strintern
Unexecuted instantiation: terminal.c:strintern
Unexecuted instantiation: connect.c:strintern
Unexecuted instantiation: connected.c:strintern
Unexecuted instantiation: convert.c:strintern
Unexecuted instantiation: csum-file.c:strintern
Unexecuted instantiation: delta-islands.c:strintern
Unexecuted instantiation: diff-lib.c:strintern
Unexecuted instantiation: diff-no-index.c:strintern
Unexecuted instantiation: diffcore-break.c:strintern
Unexecuted instantiation: diffcore-rename.c:strintern
Unexecuted instantiation: dir-iterator.c:strintern
Unexecuted instantiation: dir.c:strintern
Unexecuted instantiation: editor.c:strintern
Unexecuted instantiation: entry.c:strintern
Unexecuted instantiation: environment.c:strintern
Unexecuted instantiation: fsmonitor.c:strintern
Unexecuted instantiation: fsmonitor-ipc.c:strintern
Unexecuted instantiation: fsmonitor-settings.c:strintern
Unexecuted instantiation: gpg-interface.c:strintern
Unexecuted instantiation: graph.c:strintern
Unexecuted instantiation: hash-lookup.c:strintern
Unexecuted instantiation: hashmap.c:strintern
Unexecuted instantiation: hex.c:strintern
Unexecuted instantiation: ident.c:strintern
Unexecuted instantiation: line-log.c:strintern
Unexecuted instantiation: list-objects-filter-options.c:strintern
Unexecuted instantiation: list-objects.c:strintern
Unexecuted instantiation: log-tree.c:strintern
Unexecuted instantiation: mailinfo.c:strintern
Unexecuted instantiation: mailmap.c:strintern
Unexecuted instantiation: merge-blobs.c:strintern
Unexecuted instantiation: merge-ll.c:strintern
Unexecuted instantiation: merge-ort.c:strintern
Unexecuted instantiation: merge-ort-wrappers.c:strintern
Unexecuted instantiation: midx.c:strintern
Unexecuted instantiation: midx-write.c:strintern
Unexecuted instantiation: name-hash.c:strintern
Unexecuted instantiation: notes-cache.c:strintern
Unexecuted instantiation: notes-merge.c:strintern
Unexecuted instantiation: notes-utils.c:strintern
Unexecuted instantiation: object-file-convert.c:strintern
Unexecuted instantiation: object-file.c:strintern
Unexecuted instantiation: object-name.c:strintern
Unexecuted instantiation: object.c:strintern
Unexecuted instantiation: oid-array.c:strintern
Unexecuted instantiation: oidmap.c:strintern
Unexecuted instantiation: pack-bitmap-write.c:strintern
Unexecuted instantiation: pack-bitmap.c:strintern
Unexecuted instantiation: pack-check.c:strintern
Unexecuted instantiation: pack-mtimes.c:strintern
Unexecuted instantiation: pack-revindex.c:strintern
Unexecuted instantiation: pack-write.c:strintern
Unexecuted instantiation: packfile.c:strintern
Unexecuted instantiation: pager.c:strintern
Unexecuted instantiation: parallel-checkout.c:strintern
Unexecuted instantiation: parse-options-cb.c:strintern
Unexecuted instantiation: patch-ids.c:strintern
Unexecuted instantiation: path.c:strintern
Unexecuted instantiation: pathspec.c:strintern
Unexecuted instantiation: preload-index.c:strintern
Unexecuted instantiation: pretty.c:strintern
Unexecuted instantiation: progress.c:strintern
Unexecuted instantiation: promisor-remote.c:strintern
Unexecuted instantiation: protocol.c:strintern
Unexecuted instantiation: prune-packed.c:strintern
Unexecuted instantiation: pseudo-merge.c:strintern
Unexecuted instantiation: reachable.c:strintern
Unexecuted instantiation: read-cache.c:strintern
Unexecuted instantiation: rebase-interactive.c:strintern
Unexecuted instantiation: ref-filter.c:strintern
Unexecuted instantiation: reflog-walk.c:strintern
Unexecuted instantiation: debug.c:strintern
Unexecuted instantiation: files-backend.c:strintern
Unexecuted instantiation: reftable-backend.c:strintern
Unexecuted instantiation: iterator.c:strintern
Unexecuted instantiation: packed-backend.c:strintern
Unexecuted instantiation: ref-cache.c:strintern
Unexecuted instantiation: refspec.c:strintern
Unexecuted instantiation: replace-object.c:strintern
Unexecuted instantiation: repo-settings.c:strintern
Unexecuted instantiation: repository.c:strintern
Unexecuted instantiation: resolve-undo.c:strintern
Unexecuted instantiation: revision.c:strintern
Unexecuted instantiation: run-command.c:strintern
Unexecuted instantiation: sequencer.c:strintern
Unexecuted instantiation: serve.c:strintern
Unexecuted instantiation: server-info.c:strintern
Unexecuted instantiation: setup.c:strintern
Unexecuted instantiation: shallow.c:strintern
Unexecuted instantiation: sideband.c:strintern
Unexecuted instantiation: sparse-index.c:strintern
Unexecuted instantiation: split-index.c:strintern
Unexecuted instantiation: streaming.c:strintern
Unexecuted instantiation: strmap.c:strintern
Unexecuted instantiation: sub-process.c:strintern
Unexecuted instantiation: submodule-config.c:strintern
Unexecuted instantiation: submodule.c:strintern
Unexecuted instantiation: symlinks.c:strintern
Unexecuted instantiation: tmp-objdir.c:strintern
Unexecuted instantiation: trace.c:strintern
Unexecuted instantiation: trace2.c:strintern
Unexecuted instantiation: tr2_cfg.c:strintern
Unexecuted instantiation: tr2_sysenv.c:strintern
Unexecuted instantiation: tr2_tgt_event.c:strintern
Unexecuted instantiation: tr2_tgt_normal.c:strintern
Unexecuted instantiation: tr2_tgt_perf.c:strintern
Unexecuted instantiation: trailer.c:strintern
Unexecuted instantiation: transport-helper.c:strintern
Unexecuted instantiation: transport.c:strintern
Unexecuted instantiation: tree-diff.c:strintern
Unexecuted instantiation: tree-walk.c:strintern
Unexecuted instantiation: tree.c:strintern
Unexecuted instantiation: unpack-trees.c:strintern
Unexecuted instantiation: urlmatch.c:strintern
Unexecuted instantiation: userdiff.c:strintern
Unexecuted instantiation: versioncmp.c:strintern
Unexecuted instantiation: wt-status.c:strintern
Unexecuted instantiation: xdiff-interface.c:strintern
Unexecuted instantiation: alloc.c:strintern
Unexecuted instantiation: archive-tar.c:strintern
Unexecuted instantiation: archive-zip.c:strintern
Unexecuted instantiation: chunk-format.c:strintern
Unexecuted instantiation: fetch-negotiator.c:strintern
Unexecuted instantiation: list-objects-filter.c:strintern
Unexecuted instantiation: loose.c:strintern
Unexecuted instantiation: ls-refs.c:strintern
Unexecuted instantiation: match-trees.c:strintern
Unexecuted instantiation: default.c:strintern
Unexecuted instantiation: skipping.c:strintern
Unexecuted instantiation: protocol-caps.c:strintern
Unexecuted instantiation: error.c:strintern
Unexecuted instantiation: iter.c:strintern
Unexecuted instantiation: publicbasics.c:strintern
Unexecuted instantiation: reader.c:strintern
Unexecuted instantiation: record.c:strintern
Unexecuted instantiation: stack.c:strintern
Unexecuted instantiation: writer.c:strintern
Unexecuted instantiation: basics.c:strintern
Unexecuted instantiation: block.c:strintern
Unexecuted instantiation: blocksource.c:strintern
Unexecuted instantiation: merged.c:strintern
Unexecuted instantiation: pq.c:strintern
Unexecuted instantiation: common-main.c:strintern
576
577
#endif