]> git.ipfire.org Git - thirdparty/git.git/commitdiff
reftable/stack: drop only use of `get_locked_file_path()`
authorPatrick Steinhardt <ps@pks.im>
Mon, 18 Nov 2024 15:34:05 +0000 (16:34 +0100)
committerJunio C Hamano <gitster@pobox.com>
Tue, 19 Nov 2024 03:23:10 +0000 (12:23 +0900)
We've got a single callsite where we call `get_locked_file_path()`. As
we're about to convert our usage of the lockfile subsystem to instead be
used via a compatibility shim we'd have to implement more logic for this
single callsite. While that would be okay if Git was the only supposed
user of the reftable library, it's a bit more awkward when considering
that we have to reimplement this functionality for every user of the
library eventually.

Refactor the code such that we don't call `get_locked_file_path()`
anymore.

Signed-off-by: Patrick Steinhardt <ps@pks.im>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
reftable/stack.c

index 2ac6a3715163c953c5cd2017d17392cbfbaf1e67..223d7c622d920b1045e3b4bdecd7dbb556a9cf84 100644 (file)
@@ -1493,9 +1493,15 @@ static int stack_compact_range(struct reftable_stack *st,
         */
        for (i = 0; i < nlocks; i++) {
                struct lock_file *table_lock = &table_locks[i];
-               char *table_path = get_locked_file_path(table_lock);
-               unlink(table_path);
-               reftable_free(table_path);
+               const char *lock_path = get_lock_file_path(table_lock);
+
+               reftable_buf_reset(&table_name);
+               err = reftable_buf_add(&table_name, lock_path,
+                                      strlen(lock_path) - strlen(".lock"));
+               if (err)
+                       continue;
+
+               unlink(table_name.buf);
        }
 
 done: