From: Tay Ray Chuan <rctay89@gmail.com>
To: "Git Mailing List" <git@vger.kernel.org>
Cc: "Clemens Buchacher" <drizzd@aon.at>,
"Mike Hommey" <mh@glandium.org>,
"Shawn O. Pearce" <spearce@spearce.org>
Subject: [PATCH 7/7] remote-curl: init walker only when needed
Date: Sun, 21 Feb 2010 11:08:28 +0800 [thread overview]
Message-ID: <1266721708-1060-8-git-send-email-rctay89@gmail.com> (raw)
In-Reply-To: <1266721708-1060-1-git-send-email-rctay89@gmail.com>
Invoke get_http_walker() only when fetching with the dumb protocol.
Additionally, add an invocation to walker_free() after we're done using
the walker.
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---
remote-curl.c | 13 +++----------
1 files changed, 3 insertions(+), 10 deletions(-)
diff --git a/remote-curl.c b/remote-curl.c
index 5ace99e..b76bfcb 100644
--- a/remote-curl.c
+++ b/remote-curl.c
@@ -10,7 +10,6 @@
static struct remote *remote;
static const char *url;
-static struct walker *walker;
struct options {
int verbosity;
@@ -22,12 +21,6 @@ struct options {
};
static struct options options;
-static void init_walker(void)
-{
- if (!walker)
- walker = get_http_walker(url);
-}
-
static int set_option(const char *name, const char *value)
{
if (!strcmp(name, "verbosity")) {
@@ -119,7 +112,6 @@ static struct discovery* discover_refs(const char *service)
}
refs_url = strbuf_detach(&buffer, NULL);
- init_walker();
http_ret = http_get_strbuf(refs_url, &buffer, HTTP_NO_CACHE);
/* try again with "plain" url (no ? or & appended) */
@@ -501,7 +493,6 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads)
struct child_process client;
int err = 0;
- init_walker();
memset(&client, 0, sizeof(client));
client.in = -1;
client.out = -1;
@@ -553,6 +544,7 @@ static int rpc_service(struct rpc_state *rpc, struct discovery *heads)
static int fetch_dumb(int nr_heads, struct ref **to_fetch)
{
+ struct walker *walker;
char **targets = xmalloc(nr_heads * sizeof(char*));
int ret, i;
@@ -561,13 +553,14 @@ static int fetch_dumb(int nr_heads, struct ref **to_fetch)
for (i = 0; i < nr_heads; i++)
targets[i] = xstrdup(sha1_to_hex(to_fetch[i]->old_sha1));
- init_walker();
+ walker = get_http_walker(url);
walker->get_all = 1;
walker->get_tree = 1;
walker->get_history = 1;
walker->get_verbosely = options.verbosity >= 3;
walker->get_recover = 0;
ret = walker_fetch(walker, nr_heads, targets, NULL, NULL);
+ walker_free(walker);
for (i = 0; i < nr_heads; i++)
free(targets[i]);
--
1.7.0.26.gbfa16
prev parent reply other threads:[~2010-02-21 3:09 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-02-21 3:08 [PATCH 0/7] http: minor improvements Tay Ray Chuan
2010-02-21 3:08 ` [PATCH 1/7] t5541-http-push: check that ref is unchanged for non-ff test Tay Ray Chuan
2010-02-21 3:08 ` [PATCH 2/7] t554[01]-http-push: refactor, add non-ff tests Tay Ray Chuan
2010-02-21 3:08 ` [PATCH 3/7] http-push: remove useless condition Tay Ray Chuan
2010-02-21 10:40 ` Clemens Buchacher
2010-02-21 15:23 ` Tay Ray Chuan
2010-02-21 3:08 ` [PATCH 4/7] http-walker: cleanup more thoroughly Tay Ray Chuan
2010-02-21 3:08 ` [PATCH 5/7] http: init and cleanup separately from http-walker Tay Ray Chuan
2010-02-21 10:38 ` Clemens Buchacher
2010-02-21 10:57 ` Clemens Buchacher
2010-02-21 15:23 ` Tay Ray Chuan
2010-02-21 3:08 ` [PATCH 6/7] remote-curl: use http_fetch_ref() instead of walker wrapper Tay Ray Chuan
2010-02-21 3:08 ` Tay Ray Chuan [this message]
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=1266721708-1060-8-git-send-email-rctay89@gmail.com \
--to=rctay89@gmail.com \
--cc=drizzd@aon.at \
--cc=git@vger.kernel.org \
--cc=mh@glandium.org \
--cc=spearce@spearce.org \
/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;
as well as URLs for NNTP newsgroup(s).