diff options
author | Jamie Couture <jamie.couture@gmail.com> | 2011-09-17 22:25:01 +0000 |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2012-01-03 15:16:01 +0000 |
commit | e19f7d7180d64c8ba9ca15f5fe164606f0ec88c1 (patch) | |
tree | 55faa59f4835bec90fa5d94643cf1600d699cdb7 /ui-ssdiff.h | |
parent | bebe89d7c11a92bf206bf6e528c51ffa8ecbc0d5 (diff) | |
download | cgit-e19f7d7180d64c8ba9ca15f5fe164606f0ec88c1.tar cgit-e19f7d7180d64c8ba9ca15f5fe164606f0ec88c1.tar.gz cgit-e19f7d7180d64c8ba9ca15f5fe164606f0ec88c1.zip |
ui-ssdiff: move LCS table away from the stack
Printing deferred line changes for files containing long lines would
cause a segfault.
- limit LCS table size: 128x128.
- move LCS table to global context: avoid allocating/freeing memory
for every deferred line change.
Signed-off-by: Jamie Couture <jamie.couture@gmail.com>
Diffstat (limited to 'ui-ssdiff.h')
-rw-r--r-- | ui-ssdiff.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ui-ssdiff.h b/ui-ssdiff.h index 64b4b12..88627e2 100644 --- a/ui-ssdiff.h +++ b/ui-ssdiff.h @@ -1,6 +1,18 @@ #ifndef UI_SSDIFF_H #define UI_SSDIFF_H +/* + * ssdiff line limits + */ +#ifndef MAX_SSDIFF_M +#define MAX_SSDIFF_M 128 +#endif + +#ifndef MAX_SSDIFF_N +#define MAX_SSDIFF_N 128 +#endif +#define MAX_SSDIFF_SIZE ((MAX_SSDIFF_M) * (MAX_SSDIFF_N)) + extern void cgit_ssdiff_print_deferred_lines(); extern void cgit_ssdiff_line_cb(char *line, int len); |