Skip to content

Commit a9dcacb

Browse files
committed
Merge branch 'jk/oidmap-cleanup'
Code cleanup. * jk/oidmap-cleanup: raw_object_store: drop extra pointer to replace_map oidmap: add size function oidmap: rename oidmap_free() to oidmap_clear()
2 parents 9af978f + 4b63963 commit a9dcacb

File tree

11 files changed

+21
-18
lines changed

11 files changed

+21
-18
lines changed

builtin/rev-list.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -924,7 +924,7 @@ int cmd_rev_list(int argc,
924924
free((void *)entry->path);
925925
}
926926

927-
oidmap_free(&missing_objects, true);
927+
oidmap_clear(&missing_objects, true);
928928
}
929929

930930
stop_progress(&progress);

commit-graph.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -222,7 +222,7 @@ static int commit_graph_compatible(struct repository *r)
222222

223223
if (replace_refs_enabled(r)) {
224224
prepare_replace_object(r);
225-
if (hashmap_get_size(&r->objects->replace_map->map))
225+
if (oidmap_get_size(&r->objects->replace_map))
226226
return 0;
227227
}
228228

list-objects-filter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,7 @@ static void filter_trees_free(void *filter_data) {
244244
struct filter_trees_depth_data *d = filter_data;
245245
if (!d)
246246
return;
247-
oidmap_free(&d->seen_at_depth, 1);
247+
oidmap_clear(&d->seen_at_depth, 1);
248248
free(d);
249249
}
250250

object-store.c

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -987,8 +987,7 @@ void raw_object_store_clear(struct raw_object_store *o)
987987
{
988988
FREE_AND_NULL(o->alternate_db);
989989

990-
oidmap_free(o->replace_map, 1);
991-
FREE_AND_NULL(o->replace_map);
990+
oidmap_clear(&o->replace_map, 1);
992991
pthread_mutex_destroy(&o->replace_mutex);
993992

994993
free_commit_graph(o->commit_graph);

object-store.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include "object.h"
66
#include "list.h"
77
#include "oidset.h"
8+
#include "oidmap.h"
89
#include "thread-utils.h"
910

1011
struct oidmap;
@@ -109,7 +110,7 @@ struct raw_object_store {
109110
* Objects that should be substituted by other objects
110111
* (see git-replace(1)).
111112
*/
112-
struct oidmap *replace_map;
113+
struct oidmap replace_map;
113114
unsigned replace_map_initialized : 1;
114115
pthread_mutex_t replace_mutex; /* protect object replace functions */
115116

oidmap.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ void oidmap_init(struct oidmap *map, size_t initial_size)
2222
hashmap_init(&map->map, oidmap_neq, NULL, initial_size);
2323
}
2424

25-
void oidmap_free(struct oidmap *map, int free_entries)
25+
void oidmap_clear(struct oidmap *map, int free_entries)
2626
{
2727
if (!map)
2828
return;

oidmap.h

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,12 +36,13 @@ struct oidmap {
3636
void oidmap_init(struct oidmap *map, size_t initial_size);
3737

3838
/*
39-
* Frees an oidmap structure and allocated memory.
39+
* Clear an oidmap, freeing any allocated memory. The map is empty and
40+
* can be reused without another explicit init.
4041
*
4142
* If `free_entries` is true, each oidmap_entry in the map is freed as well
4243
* using stdlibs free().
4344
*/
44-
void oidmap_free(struct oidmap *map, int free_entries);
45+
void oidmap_clear(struct oidmap *map, int free_entries);
4546

4647
/*
4748
* Returns the oidmap entry for the specified oid, or NULL if not found.
@@ -66,6 +67,10 @@ void *oidmap_put(struct oidmap *map, void *entry);
6667
*/
6768
void *oidmap_remove(struct oidmap *map, const struct object_id *key);
6869

70+
static inline unsigned int oidmap_get_size(struct oidmap *map)
71+
{
72+
return hashmap_get_size(&map->map);
73+
}
6974

7075
struct oidmap_iter {
7176
struct hashmap_iter h_iter;

replace-object.c

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ static int register_replace_ref(const char *refname,
3131
oidcpy(&repl_obj->replacement, oid);
3232

3333
/* Register new object */
34-
if (oidmap_put(r->objects->replace_map, repl_obj))
34+
if (oidmap_put(&r->objects->replace_map, repl_obj))
3535
die(_("duplicate replace ref: %s"), refname);
3636

3737
return 0;
@@ -48,9 +48,7 @@ void prepare_replace_object(struct repository *r)
4848
return;
4949
}
5050

51-
r->objects->replace_map =
52-
xmalloc(sizeof(*r->objects->replace_map));
53-
oidmap_init(r->objects->replace_map, 0);
51+
oidmap_init(&r->objects->replace_map, 0);
5452

5553
refs_for_each_replace_ref(get_main_ref_store(r),
5654
register_replace_ref, r);
@@ -80,7 +78,7 @@ const struct object_id *do_lookup_replace_object(struct repository *r,
8078
/* Try to recursively replace the object */
8179
while (depth-- > 0) {
8280
struct replace_object *repl_obj =
83-
oidmap_get(r->objects->replace_map, cur);
81+
oidmap_get(&r->objects->replace_map, cur);
8482
if (!repl_obj)
8583
return cur;
8684
cur = &repl_obj->replacement;

replace-object.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ static inline const struct object_id *lookup_replace_object(struct repository *r
4747
{
4848
if (!replace_refs_enabled(r) ||
4949
(r->objects->replace_map_initialized &&
50-
r->objects->replace_map->map.tablesize == 0))
50+
oidmap_get_size(&r->objects->replace_map) == 0))
5151
return oid;
5252
return do_lookup_replace_object(r, oid);
5353
}

sequencer.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6051,8 +6051,8 @@ static int make_script_with_merges(struct pretty_print_context *pp,
60516051
oidset_clear(&interesting);
60526052
oidset_clear(&child_seen);
60536053
oidset_clear(&shown);
6054-
oidmap_free(&commit2todo, 1);
6055-
oidmap_free(&state.commit2label, 1);
6054+
oidmap_clear(&commit2todo, 1);
6055+
oidmap_clear(&state.commit2label, 1);
60566056
hashmap_clear_and_free(&state.labels, struct labels_entry, entry);
60576057
strbuf_release(&state.buf);
60586058

0 commit comments

Comments
 (0)