diff options
| author | saturneric <[email protected]> | 2025-11-02 15:21:58 +0000 |
|---|---|---|
| committer | saturneric <[email protected]> | 2025-11-02 15:21:58 +0000 |
| commit | 960134bef2cd769981cad8df0bd63cb0461e6bbe (patch) | |
| tree | 6118799a8eb7ceb1efcff4e2c0be3dd21b2f4e4f /ui-tree.c | |
| parent | chore(submodule): update `git` submodule URL and commit (diff) | |
| download | cgit-960134bef2cd769981cad8df0bd63cb0461e6bbe.tar.gz cgit-960134bef2cd769981cad8df0bd63cb0461e6bbe.zip | |
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.
Diffstat (limited to 'ui-tree.c')
| -rw-r--r-- | ui-tree.c | 22 |
1 files changed, 14 insertions, 8 deletions
@@ -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("<tr><td colspan='3'>Bad object: %s %s</td></tr>", 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; |
