Thread (1 message) 1 message, 1 author, 2016-06-15

Re: [PATCH] Avoid recalculating filename string pointer.

From: Junio C Hamano <hidden>
Date: 2016-06-15 22:43:53

Mike Hommey [off-list ref] writes:
On Wed, Nov 21, 2007 at 10:59:41PM -0200, André Goddard Rosa wrote:
quoted
--- a/fast-import.c
+++ b/fast-import.c
@@ -2304,11 +2304,13 @@ int main(int argc, const char **argv)
 		else if (!prefixcmp(a, "--export-marks="))
 			mark_file = a + 15;
 		else if (!prefixcmp(a, "--export-pack-edges=")) {
+			char *filename = a + 20;
+
 			if (pack_edges)
 				fclose(pack_edges);
-			pack_edges = fopen(a + 20, "a");
+			pack_edges = fopen(filename, "a");
 			if (!pack_edges)
-				die("Cannot open %s: %s", a + 20, strerror(errno));
+				die("Cannot open %s: %s", filename, strerror(errno));
 		} else if (!strcmp(a, "--force"))
 			force_update = 1;
 		else if (!strcmp(a, "--quiet"))
Normally, the compiler takes care of such optimizations. It actually
takes care of it much better than you can do yourself, and doing it
yourself can even sometimes generate less optimized code because it
gets in the compiler optimizations'way.
True, but I think another point of the patch is to address the
risk of two instances of "+ 20" going out of sync if/when the
option parsing is updated.

Not that I think André meant the patch as defensive coding (the
subject suggests it was meant to be a micro-optimization), nor
this is the good way to address that risk factor (parse-options
may be a better match for it).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help