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).