From: Bruno Haible Date: Mon, 18 Feb 2008 02:11:40 +0000 (+0100) Subject: Speed up by 10%. X-Git-Tag: v0.1~7739 X-Git-Url: http://erislabs.net/gitweb/?a=commitdiff_plain;h=0eb77fc848fa25c1bc36cc82908655c32ae73702;p=gnulib.git Speed up by 10%. --- diff --git a/ChangeLog b/ChangeLog index 2583f1a06..437e4a111 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,11 @@ 2008-02-17 Bruno Haible + Speed up by 10%. + * lib/git-merge-changelog.c (main): Use the iterator to iterate through + result_entries, rather than an index-based loop. + +2008-02-17 Bruno Haible + Speed up by 25%. * lib/git-merge-changelog.c (struct entry): New fields 'hashcode', 'hashcode_cached'. @@ -23769,4 +23775,4 @@ * lib/regexec.c (build_trtable): Remove "#ifdef _LIBC", since the code now works outside glibc. -2005-08-25 Paul Eggert \ No newline at end of file +2005-08-25 Paul Eggert diff --git a/lib/git-merge-changelog.c b/lib/git-merge-changelog.c index 5f639eff0..56e551102 100644 --- a/lib/git-merge-changelog.c +++ b/lib/git-merge-changelog.c @@ -1505,11 +1505,14 @@ There is NO WARRANTY, to the extent permitted by law.\n\ for (i = 0; i < n; i++) conflict_write (fp, (struct conflict *) gl_list_get_at (result_conflicts, i)); } + /* Output the modified and unmodified entries, in order. */ { - size_t n = gl_list_size (result_entries); - size_t i; - for (i = 0; i < n; i++) - entry_write (fp, (struct entry *) gl_list_get_at (result_entries, i)); + gl_list_iterator_t iter = gl_list_iterator (result_entries); + const void *elt; + gl_list_node_t node; + while (gl_list_iterator_next (&iter, &elt, &node)) + entry_write (fp, (struct entry *) elt); + gl_list_iterator_free (&iter); } if (fwriteerror (fp))