From: Sergey Vlasov <vsu@altlinux.ru>
To: Junio C Hamano <junkio@cox.net>
Cc: git@vger.kernel.org
Subject: [PATCH 1/8] fetch.c: Remove useless lookup_object_type() call in process()
Date: Wed, 21 Sep 2005 20:18:55 +0400 (MSD) [thread overview]
Message-ID: <20050921161855.896F1E010FC@center4.mivlgu.local> (raw)
In-Reply-To: <20050921161829.GA20944@master.mivlgu.local>
In all places where process() is called except the one in pull() (which
is executed only once) the pointer to the object is already available,
so pass it as the argument to process() instead of sha1 and avoid an
unneeded call to lookup_object_type().
---
fetch.c | 23 ++++++++++-------------
1 files changed, 10 insertions(+), 13 deletions(-)
3a0ec5d22a2f9828bebae9b13e5848291685e4c5
diff --git a/fetch.c b/fetch.c
--- a/fetch.c
+++ b/fetch.c
@@ -33,7 +33,7 @@ static void report_missing(const char *w
what, missing_hex, sha1_to_hex(current_commit_sha1));
}
-static int process(unsigned char *sha1, const char *type);
+static int process(struct object *obj);
static int process_tree(struct tree *tree)
{
@@ -46,8 +46,7 @@ static int process_tree(struct tree *tre
tree->entries = NULL;
while (entry) {
struct tree_entry_list *next = entry->next;
- if (process(entry->item.any->sha1,
- entry->directory ? tree_type : blob_type))
+ if (process(entry->item.any))
return -1;
free(entry);
entry = next;
@@ -79,7 +78,7 @@ static int process_commit(struct commit
pull_say("walk %s\n", sha1_to_hex(commit->object.sha1));
if (get_tree) {
- if (process(commit->tree->object.sha1, tree_type))
+ if (process(&commit->tree->object))
return -1;
if (!get_all)
get_tree = 0;
@@ -87,7 +86,7 @@ static int process_commit(struct commit
if (get_history) {
struct commit_list *parents = commit->parents;
for (; parents; parents = parents->next) {
- if (process(parents->item->object.sha1, commit_type))
+ if (process(&parents->item->object))
return -1;
}
}
@@ -98,7 +97,7 @@ static int process_tag(struct tag *tag)
{
if (parse_tag(tag))
return -1;
- return process(tag->tagged->sha1, NULL);
+ return process(tag->tagged);
}
static struct object_list *process_queue = NULL;
@@ -133,12 +132,10 @@ static int process_object(struct object
obj->type, sha1_to_hex(obj->sha1));
}
-static int process(unsigned char *sha1, const char *type)
+static int process(struct object *obj)
{
- struct object *obj = lookup_object_type(sha1, type);
-
- if (has_sha1_file(sha1)) {
- parse_object(sha1);
+ if (has_sha1_file(obj->sha1)) {
+ parse_object(obj->sha1);
/* We already have it, so we should scan it now. */
if (obj->flags & (SCANNED | TO_SCAN))
return 0;
@@ -153,7 +150,7 @@ static int process(unsigned char *sha1,
process_queue_end = &(*process_queue_end)->next;
obj->flags |= TO_FETCH;
- prefetch(sha1);
+ prefetch(obj->sha1);
return 0;
}
@@ -228,7 +225,7 @@ int pull(char *target)
if (interpret_target(target, sha1))
return error("Could not interpret %s as something to pull",
target);
- if (process(sha1, NULL))
+ if (process(lookup_unknown_object(sha1)))
return -1;
if (loop())
return -1;
next prev parent reply other threads:[~2005-09-21 16:19 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-09-21 16:18 [PATCH 0/8] fetch.c optimizations Sergey Vlasov
2005-09-21 16:18 ` Sergey Vlasov [this message]
2005-09-21 19:45 ` [PATCH 1/8] fetch.c: Remove useless lookup_object_type() call in process() Junio C Hamano
2005-09-22 8:50 ` Sergey Vlasov
2005-09-21 16:18 ` [PATCH 2/8] fetch.c: Make process() look at each object only once Sergey Vlasov
2005-09-21 16:18 ` [PATCH 3/8] fetch.c: Remove redundant SCANNED flag Sergey Vlasov
2005-09-21 16:19 ` [PATCH 4/8] fetch.c: Remove redundant TO_FETCH flag Sergey Vlasov
2005-09-21 16:19 ` [PATCH 5/8] fetch.c: Remove some duplicated code in process() Sergey Vlasov
2005-09-21 16:19 ` [PATCH 6/8] fetch.c: Remove redundant test of TO_SCAN " Sergey Vlasov
2005-09-21 16:19 ` [PATCH 7/8] fetch.c: Clean up object flag definitions Sergey Vlasov
2005-09-21 16:19 ` [PATCH 8/8] fetch.c: Remove call to parse_object() from process() Sergey Vlasov
2005-09-21 21:03 ` [PATCH 0/8] fetch.c optimizations Daniel Barkalow
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20050921161855.896F1E010FC@center4.mivlgu.local \
--to=vsu@altlinux.ru \
--cc=git@vger.kernel.org \
--cc=junkio@cox.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox