diff options
| author | Edward Thomson <ethomson@edwardthomson.com> | 2023-04-22 23:12:00 +0100 |
|---|---|---|
| committer | Edward Thomson <ethomson@edwardthomson.com> | 2023-04-22 23:17:32 +0100 |
| commit | 190a4c55df72b32adf4d60f77cbc47276b74f84b (patch) | |
| tree | 896d6d41c2ea6305992bd646bbbe79a3fdb5f6fe /src/libgit2/parse.c | |
| parent | e288f874a3a73ef31f88bb524f6d25d5ff3c5a3a (diff) | |
| parent | 8a62616f43fe5ea37d41296f40293ff97aa88cfa (diff) | |
| download | libgit2-190a4c55df72b32adf4d60f77cbc47276b74f84b.tar.gz | |
Merge remote-tracking branch 'origin/main' into shallow-clone-network
Diffstat (limited to 'src/libgit2/parse.c')
| -rw-r--r-- | src/libgit2/parse.c | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/libgit2/parse.c b/src/libgit2/parse.c index 55d3cb10e..9eb86a3f5 100644 --- a/src/libgit2/parse.c +++ b/src/libgit2/parse.c @@ -102,13 +102,16 @@ int git_parse_advance_digit(int64_t *out, git_parse_ctx *ctx, int base) return 0; } -int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx) +int git_parse_advance_oid(git_oid *out, git_parse_ctx *ctx, git_oid_t oid_type) { - if (ctx->line_len < GIT_OID_SHA1_HEXSIZE) + size_t oid_hexsize = git_oid_hexsize(oid_type); + GIT_ASSERT(oid_hexsize); + + if (ctx->line_len < oid_hexsize) return -1; - if ((git_oid__fromstrn(out, ctx->line, GIT_OID_SHA1_HEXSIZE, GIT_OID_SHA1)) < 0) + if ((git_oid__fromstrn(out, ctx->line, oid_hexsize, oid_type)) < 0) return -1; - git_parse_advance_chars(ctx, GIT_OID_SHA1_HEXSIZE); + git_parse_advance_chars(ctx, oid_hexsize); return 0; } |
