diff options
author | Ben Straub <bs@github.com> | 2013-04-15 12:00:04 -0700 |
---|---|---|
committer | Ben Straub <bs@github.com> | 2013-04-15 12:00:04 -0700 |
commit | 299a224be16368dc36bef4dc3f5e711ce35300cd (patch) | |
tree | 5371b54270c4b84abd586c49d7eb06b80d3d4e7b /src/revparse.c | |
parent | 2ebc3c66c292539786b6ec1538f740c5e444fe16 (diff) | |
download | libgit2-299a224be16368dc36bef4dc3f5e711ce35300cd.tar.gz |
Change git_revparse to output git_object pointers
This will probably prevent many lookup/free
operations in calling code.
Diffstat (limited to 'src/revparse.c')
-rw-r--r-- | src/revparse.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/src/revparse.c b/src/revparse.c index 5f591406e..62be3128a 100644 --- a/src/revparse.c +++ b/src/revparse.c @@ -870,8 +870,8 @@ cleanup: int git_revparse( - git_oid *left, - git_oid *right, + git_object **left, + git_object **right, unsigned int *flags, git_repository *repo, const char *spec) @@ -879,7 +879,6 @@ int git_revparse( unsigned int lflags = 0; const char *dotdot; int error = 0; - git_object *obj = NULL; assert(left && repo && spec); @@ -895,22 +894,18 @@ int git_revparse( rstr++; } - if (!(error = git_revparse_single(&obj, repo, lstr))) { - git_oid_cpy(left, git_object_id(obj)); - git_object_free(obj); + if ((error = git_revparse_single(left, repo, lstr)) < 0) { + return error; } - if (right && !(error = git_revparse_single(&obj, repo, rstr))) { - git_oid_cpy(right, git_object_id(obj)); - git_object_free(obj); + if (right && + (error = git_revparse_single(right, repo, rstr)) < 0) { + return error; } git__free((void*)lstr); } else { lflags = GIT_REVPARSE_SINGLE; - if (!(error = git_revparse_single(&obj, repo, spec))) { - git_oid_cpy(left, git_object_id(obj)); - git_object_free(obj); - } + error = git_revparse_single(left, repo, spec); } if (flags) |