From 960134bef2cd769981cad8df0bd63cb0461e6bbe Mon Sep 17 00:00:00 2001 From: saturneric Date: Sun, 2 Nov 2025 15:21:58 +0000 Subject: refactor(repo): migrate to new object database API * Replace legacy object store interfaces with new `odb` API * Update function signatures to include referent param for callbacks * Use improved object lookup and read methods for consistency * Simplify file path handling with repository-scoped utilities Modernizes repository object access for better maintainability and future compatibility. No functional regressions expected. --- ui-tree.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) (limited to 'ui-tree.c') diff --git a/ui-tree.c b/ui-tree.c index 3d8a2eb..9331285 100644 --- a/ui-tree.c +++ b/ui-tree.c @@ -93,15 +93,15 @@ static void print_object(const struct object_id *oid, const char *path, const ch unsigned long size; bool is_binary; - type = oid_object_info(the_repository, oid, &size); - if (type == OBJ_BAD) { + if (!odb_has_object(the_repository->objects, oid, 0)) { cgit_print_error_page(404, "Not found", - "Bad object name: %s", oid_to_hex(oid)); + "Object %s not found in repository", + oid_to_hex(oid)); return; } - buf = repo_read_object_file(the_repository, oid, &type, &size); - if (!buf) { + buf = odb_read_object(the_repository->objects, oid, &type, &size); + if (!buf || type != OBJ_BLOB) { cgit_print_error_page(500, "Internal server error", "Error reading object %s", oid_to_hex(oid)); return; @@ -217,8 +217,14 @@ static int ls_item(const struct object_id *oid, struct strbuf *base, ctx.qry.path ? "/" : "", name); if (!S_ISGITLINK(mode)) { - type = oid_object_info(the_repository, oid, &size); - if (type == OBJ_BAD) { + + struct object_info oi = { + .typep = &type, + .sizep = &size + }; + + if (odb_read_object_info_extended(the_repository->objects, oid, + &oi, OBJECT_INFO_LOOKUP_REPLACE) < 0 || type == OBJ_BAD) { htmlf("Bad object: %s %s", name, oid_to_hex(oid)); @@ -244,7 +250,7 @@ static int ls_item(const struct object_id *oid, struct strbuf *base, } if (S_ISLNK(mode)) { html(" -> "); - buf = repo_read_object_file(the_repository, oid, &type, &size); + buf = odb_read_object(the_repository->objects, oid, &type, &size); if (!buf) { htmlf("Error reading object: %s", oid_to_hex(oid)); goto cleanup; -- cgit