Skip to content

Commit 24e0ade

Browse files
pks-tgitster
authored andcommitted
reftable: introduce REFTABLE_FREE_AND_NULL()
We have several calls to `FREE_AND_NULL()` in the reftable library, which of course uses free(3P). As the reftable allocators are pluggable we should rather call the reftable specific function, which is `reftable_free()`. Introduce a new macro `REFTABLE_FREE_AND_NULL()` and adapt the callsites accordingly. Signed-off-by: Patrick Steinhardt <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent daa59e9 commit 24e0ade

File tree

9 files changed

+19
-18
lines changed

9 files changed

+19
-18
lines changed

reftable/basics.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ char *reftable_strdup(const char *str);
7171
REFTABLE_REALLOC_ARRAY(x, alloc); \
7272
} \
7373
} while (0)
74+
#define REFTABLE_FREE_AND_NULL(p) do { reftable_free(p); (p) = NULL; } while (0)
7475

7576
/* Find the longest shared prefix size of `a` and `b` */
7677
struct strbuf;

reftable/block.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -551,9 +551,9 @@ int block_iter_seek_key(struct block_iter *it, const struct block_reader *br,
551551
void block_writer_release(struct block_writer *bw)
552552
{
553553
deflateEnd(bw->zstream);
554-
FREE_AND_NULL(bw->zstream);
555-
FREE_AND_NULL(bw->restarts);
556-
FREE_AND_NULL(bw->compressed);
554+
REFTABLE_FREE_AND_NULL(bw->zstream);
555+
REFTABLE_FREE_AND_NULL(bw->restarts);
556+
REFTABLE_FREE_AND_NULL(bw->compressed);
557557
strbuf_release(&bw->last_key);
558558
/* the block is not owned. */
559559
}

reftable/iter.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -237,7 +237,7 @@ void reftable_iterator_destroy(struct reftable_iterator *it)
237237
return;
238238
it->ops->close(it->iter_arg);
239239
it->ops = NULL;
240-
FREE_AND_NULL(it->iter_arg);
240+
REFTABLE_FREE_AND_NULL(it->iter_arg);
241241
}
242242

243243
int reftable_iterator_seek_ref(struct reftable_iterator *it,

reftable/pq.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,6 @@ int merged_iter_pqueue_add(struct merged_iter_pqueue *pq, const struct pq_entry
6868

6969
void merged_iter_pqueue_release(struct merged_iter_pqueue *pq)
7070
{
71-
FREE_AND_NULL(pq->heap);
71+
REFTABLE_FREE_AND_NULL(pq->heap);
7272
memset(pq, 0, sizeof(*pq));
7373
}

reftable/reader.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -678,7 +678,7 @@ void reftable_reader_decref(struct reftable_reader *r)
678678
if (--r->refcount)
679679
return;
680680
block_source_close(&r->source);
681-
FREE_AND_NULL(r->name);
681+
REFTABLE_FREE_AND_NULL(r->name);
682682
reftable_free(r);
683683
}
684684

reftable/record.c

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -476,8 +476,8 @@ static void reftable_obj_record_key(const void *r, struct strbuf *dest)
476476
static void reftable_obj_record_release(void *rec)
477477
{
478478
struct reftable_obj_record *obj = rec;
479-
FREE_AND_NULL(obj->hash_prefix);
480-
FREE_AND_NULL(obj->offsets);
479+
REFTABLE_FREE_AND_NULL(obj->hash_prefix);
480+
REFTABLE_FREE_AND_NULL(obj->offsets);
481481
memset(obj, 0, sizeof(struct reftable_obj_record));
482482
}
483483

@@ -834,10 +834,10 @@ static int reftable_log_record_decode(void *rec, struct strbuf key,
834834
if (val_type != r->value_type) {
835835
switch (r->value_type) {
836836
case REFTABLE_LOG_UPDATE:
837-
FREE_AND_NULL(r->value.update.message);
837+
REFTABLE_FREE_AND_NULL(r->value.update.message);
838838
r->value.update.message_cap = 0;
839-
FREE_AND_NULL(r->value.update.email);
840-
FREE_AND_NULL(r->value.update.name);
839+
REFTABLE_FREE_AND_NULL(r->value.update.email);
840+
REFTABLE_FREE_AND_NULL(r->value.update.name);
841841
break;
842842
case REFTABLE_LOG_DELETION:
843843
break;

reftable/stack.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -203,7 +203,7 @@ void reftable_stack_destroy(struct reftable_stack *st)
203203

204204
err = read_lines(st->list_file, &names);
205205
if (err < 0) {
206-
FREE_AND_NULL(names);
206+
REFTABLE_FREE_AND_NULL(names);
207207
}
208208

209209
if (st->readers) {
@@ -224,16 +224,16 @@ void reftable_stack_destroy(struct reftable_stack *st)
224224
}
225225
strbuf_release(&filename);
226226
st->readers_len = 0;
227-
FREE_AND_NULL(st->readers);
227+
REFTABLE_FREE_AND_NULL(st->readers);
228228
}
229229

230230
if (st->list_fd >= 0) {
231231
close(st->list_fd);
232232
st->list_fd = -1;
233233
}
234234

235-
FREE_AND_NULL(st->list_file);
236-
FREE_AND_NULL(st->reftable_dir);
235+
REFTABLE_FREE_AND_NULL(st->list_file);
236+
REFTABLE_FREE_AND_NULL(st->reftable_dir);
237237
reftable_free(st);
238238
free_names(names);
239239
}

reftable/writer.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -593,7 +593,7 @@ static void object_record_free(void *void_arg UNUSED, void *key)
593593
{
594594
struct obj_index_tree_node *entry = key;
595595

596-
FREE_AND_NULL(entry->offsets);
596+
REFTABLE_FREE_AND_NULL(entry->offsets);
597597
strbuf_release(&entry->hash);
598598
reftable_free(entry);
599599
}
@@ -709,7 +709,7 @@ static void writer_clear_index(struct reftable_writer *w)
709709
{
710710
for (size_t i = 0; w->index && i < w->index_len; i++)
711711
strbuf_release(&w->index[i].last_key);
712-
FREE_AND_NULL(w->index);
712+
REFTABLE_FREE_AND_NULL(w->index);
713713
w->index_len = 0;
714714
w->index_cap = 0;
715715
}

t/unit-tests/t-reftable-stack.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1149,7 +1149,7 @@ static void unclean_stack_close(struct reftable_stack *st)
11491149
for (size_t i = 0; i < st->readers_len; i++)
11501150
reftable_reader_decref(st->readers[i]);
11511151
st->readers_len = 0;
1152-
FREE_AND_NULL(st->readers);
1152+
REFTABLE_FREE_AND_NULL(st->readers);
11531153
}
11541154

11551155
static void t_reftable_stack_compaction_concurrent_clean(void)

0 commit comments

Comments
 (0)