diff options
author | Jamie Couture <jamie.couture@gmail.com> | 2011-09-18 07:25:01 (JST) |
---|---|---|
committer | Lars Hjemli <hjemli@gmail.com> | 2012-01-04 00:16:01 (JST) |
commit | e19f7d7180d64c8ba9ca15f5fe164606f0ec88c1 (patch) | |
tree | 55faa59f4835bec90fa5d94643cf1600d699cdb7 /ui-ssdiff.h | |
parent | bebe89d7c11a92bf206bf6e528c51ffa8ecbc0d5 (diff) | |
download | cgit-e19f7d7180d64c8ba9ca15f5fe164606f0ec88c1.zip cgit-e19f7d7180d64c8ba9ca15f5fe164606f0ec88c1.tar.gz |
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 @@ | |||
1 | #ifndef UI_SSDIFF_H | 1 | #ifndef UI_SSDIFF_H |
2 | #define UI_SSDIFF_H | 2 | #define UI_SSDIFF_H |
3 | 3 | ||
4 | /* | ||
5 | * ssdiff line limits | ||
6 | */ | ||
7 | #ifndef MAX_SSDIFF_M | ||
8 | #define MAX_SSDIFF_M 128 | ||
9 | #endif | ||
10 | |||
11 | #ifndef MAX_SSDIFF_N | ||
12 | #define MAX_SSDIFF_N 128 | ||
13 | #endif | ||
14 | #define MAX_SSDIFF_SIZE ((MAX_SSDIFF_M) * (MAX_SSDIFF_N)) | ||
15 | |||
4 | extern void cgit_ssdiff_print_deferred_lines(); | 16 | extern void cgit_ssdiff_print_deferred_lines(); |
5 | 17 | ||
6 | extern void cgit_ssdiff_line_cb(char *line, int len); | 18 | extern void cgit_ssdiff_line_cb(char *line, int len); |