aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2022-05-09 07:10:33 -0700
committerKaz Kylheku <kaz@kylheku.com>2022-05-09 07:10:33 -0700
commita5381325f76e2d817ee44819cf2c64a3123a21fc (patch)
tree448554b3b35f14b60b4bc26ecbb3cce1268ea99d
parent98d449e93168e8b66d8938adfa05149f11059bc1 (diff)
downloadpw-a5381325f76e2d817ee44819cf2c64a3123a21fc.tar.gz
pw-a5381325f76e2d817ee44819cf2c64a3123a21fc.tar.bz2
pw-a5381325f76e2d817ee44819cf2c64a3123a21fc.zip
Add optional freeing code for leak debugging.
-rw-r--r--pw.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/pw.c b/pw.c
index 28d1e98..bf27dad 100644
--- a/pw.c
+++ b/pw.c
@@ -1899,5 +1899,23 @@ int main(int argc, char **argv)
ttyset(ttyfd, &tty_saved);
}
+#if CONFIG_DEBUG_LEAKS
+ freebuf(pw.circbuf, pw.maxlines);
+ free(pw.circbuf);
+ for (int i = 0; i < snhistsize; i++) {
+ freebuf(snapshot[i], snaplines[i]);
+ free(snapshot[i]);
+ }
+ for (int i = 0; i < ngrep; i++)
+ grclean(&grepstack[i]);
+ for (int i = 0; i < maxtrig; i++) {
+ if (triglist[i])
+ grclean(triglist[i]);
+ }
+ freebuf(cmdhist, ncmdhist);
+ freebuf(pathist, npathist);
+ fclose(tty);
+#endif
+
return exit_status;
}