git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH] Removed unnecessary use of global variables.

From
Erik Faye-Lund <kusmabite@gmail.com>
Date
Mar 11, 2009, 01:05 UTC
Message-ID
<1236733524-8892-1-git-send-email-kusmabite@gmail.com>

git_config() now takes a third data-parameter that is passed back to the callback-function. At the time this code was written, that parameter did not exist, so a somewhat nasty (but by all means correct) use of global variables was introduced. In commit ef90d6d4208a5130185b04f06e5f90a5f9959fe3 Johannes Schindelin <Johannes.Schindelin@gmx.de> introduced a parameter for similar purposes.

I've changed the code to utilize this parameter to pass the string. In addition, I've made the function calculate the string length on usage instead, to reduce the parameters needed to what the callback-interface supplies.

Signed-off-by: Erik Faye-Lund <kusmabite@gmail.com>
---
 connect.c |   16 ++++++----------
 1 files changed, 6 insertions(+), 10 deletions(-)
diff --git a/connect.c b/connect.c
index 2f23ab3..98fbaea 100644
--- a/connect.c
+++ b/connect.c
@@ -371,14 +371,13 @@ static void git_tcp_connect(int fd[2], char *host, int flags)
 	fd[1] = dup(sockfd);
 }
 
-
 static char *git_proxy_command;
-static const char *rhost_name;
-static int rhost_len;
-
 static int git_proxy_command_options(const char *var, const char *value,
-		void *cb)
+		void *data)
 {
+	const char *rhost_name = data;
+	const size_t rhost_len = strlen(rhost_name);
+
 	if (!strcmp(var, "core.gitproxy")) {
 		const char *for_pos;
 		int matchlen = -1;
@@ -421,16 +420,13 @@ static int git_proxy_command_options(const char *var, const char *value,
 		return 0;
 	}
 
-	return git_default_config(var, value, cb);
+	return git_default_config(var, value, data);
 }
 
 static int git_use_proxy(const char *host)
 {
-	rhost_name = host;
-	rhost_len = strlen(host);
 	git_proxy_command = getenv("GIT_PROXY_COMMAND");
-	git_config(git_proxy_command_options, NULL);
-	rhost_name = NULL;
+	git_config(git_proxy_command_options, (void*)host);
 	return (git_proxy_command && *git_proxy_command);
 }
 
-- 
1.6.2.GIT
Next: Junio C Hamano
Message 1 of 2 in “Removed unnecessary use of global variables.”
  1. Removed unnecessary use of global variables.Erik Faye-Lund, Mar 11, 2009
  2. Junio C HamanoMar 11, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.