]> Cypherpunks repositories - keks.git/commitdiff
Reinitialise items every time
authorSergey Matveev <stargrave@stargrave.org>
Thu, 23 Jan 2025 10:46:53 +0000 (13:46 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Thu, 23 Jan 2025 14:07:57 +0000 (17:07 +0300)
c/cmd/pp/pp.c

index 9e5c61620cc9ac723273300f9defcafb0e5ebe8e7d8fd033ad3986c4aae27d5c..3b5f2534025ec3212b12f20fbdeb05b0fecccc476afa0e2a48cc57b1eff05811 100644 (file)
@@ -357,20 +357,21 @@ main(int argc, char **argv)
     snprintf(OffFmt, sizeof OffFmt, "%%s%%0%dzd%%s ", OffDigits);
 
     struct KEKSItems items;
-    enum KEKSErr err = KEKSItemsInit(&items, itemsInitialLen);
-    if (err != KEKSErrNo) {
-        fprintf(stderr, "err: %s\n", KEKSErr2Str(err));
-        return EXIT_FAILURE;
-    }
-    if (NoOffsets) {
-        free(items.offsets);
-        items.offsets = NULL;
-    }
+    enum KEKSErr err = KEKSErrInvalid;
     size_t off = 0;
     struct timespec started;
     struct timespec finished;
     ptrdiff_t parseCycles = 0;
     while (off < len) {
+        err = KEKSItemsInit(&items, itemsInitialLen);
+        if (err != KEKSErrNo) {
+            fprintf(stderr, "err: %s\n", KEKSErr2Str(err));
+            return EXIT_FAILURE;
+        }
+        if (NoOffsets) {
+            free(items.offsets);
+            items.offsets = NULL;
+        }
         errno = 0;
         if (clock_gettime(CLOCK_MONOTONIC_PRECISE, &started) != 0) {
             fprintf(stderr, "clock_gettime(started): %s\n", strerror(errno));