]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
fileio: let's minimize 'count' inc/dec calls
authorLennart Poettering <lennart@poettering.net>
Mon, 17 Dec 2018 10:52:05 +0000 (11:52 +0100)
committerLennart Poettering <lennart@poettering.net>
Tue, 18 Dec 2018 14:03:21 +0000 (15:03 +0100)
instead of increasing it and immediately after decreasing it again,
let's just increase it a bit later.

src/basic/fileio.c

index febda0abfd89a5f9ba5d7a70f89713b7ed629239..66e1273458df8eb53a73aecfa70384f4fcc29d9d 100644 (file)
@@ -746,11 +746,9 @@ int read_line_full(FILE *f, size_t limit, ReadLineFlags flags, char **ret) {
                         r = safe_fgetc(f, &c);
                         if (r < 0)
                                 return r;
-                        if (r == 0)
+                        if (r == 0) /* EOF is definitely EOL */
                                 break;
 
-                        count++;
-
                         eol = categorize_eol(c, flags);
 
                         if (FLAGS_SET(previous_eol, EOL_ZERO) ||
@@ -760,10 +758,11 @@ int read_line_full(FILE *f, size_t limit, ReadLineFlags flags, char **ret) {
                                  * EOL marker has been seen right before? In either of these three cases we are
                                  * done. But first, let's put this character back in the queue. */
                                 assert_se(ungetc(c, f) != EOF);
-                                count--;
                                 break;
                         }
 
+                        count++;
+
                         if (eol != EOL_NONE) {
                                 previous_eol |= eol;
                                 continue;