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 | |
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')
-rw-r--r-- | src/revparse.c | 21 | ||||
-rw-r--r-- | src/revwalk.c | 8 |
2 files changed, 13 insertions, 16 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) diff --git a/src/revwalk.c b/src/revwalk.c index b22fef07f..05e99c0b6 100644 --- a/src/revwalk.c +++ b/src/revwalk.c @@ -231,7 +231,7 @@ int git_revwalk_push_ref(git_revwalk *walk, const char *refname) int git_revwalk_push_range(git_revwalk *walk, const char *range) { - git_oid left, right; + git_object *left, *right; git_revparse_flag_t revparseflags; int error = 0; @@ -243,11 +243,13 @@ int git_revwalk_push_range(git_revwalk *walk, const char *range) return GIT_EINVALIDSPEC; } - if ((error = push_commit(walk, &left, 1))) + if ((error = push_commit(walk, git_object_id(left), 1))) goto out; - error = push_commit(walk, &right, 0); + error = push_commit(walk, git_object_id(right), 0); out: + git_object_free(left); + git_object_free(right); return error; } |