diff options
author | wm4 <wm4@nowhere> | 2014-01-23 18:38:51 +0100 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2014-01-24 01:00:48 +0100 |
commit | 5114ff4f2cef1846fbcc9ffcdfddea32bddb0657 (patch) | |
tree | 7c3fe43fc66f648dde181c6668cbdf9ee31fbd79 | |
parent | d87fd620350b891d9387e0708453610ee2b8bb49 (diff) | |
download | libass-5114ff4f2cef1846fbcc9ffcdfddea32bddb0657.tar.bz2 libass-5114ff4f2cef1846fbcc9ffcdfddea32bddb0657.tar.xz |
Allocate track array exponentially
This reduces the frequency of reallocations.
-rw-r--r-- | libass/ass.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/libass/ass.c b/libass/ass.c index aa49246..c45adaf 100644 --- a/libass/ass.c +++ b/libass/ass.c @@ -57,7 +57,6 @@ struct parser_priv { }; #define ASS_STYLES_ALLOC 20 -#define ASS_EVENTS_ALLOC 200 int ass_library_version(void) { @@ -122,7 +121,7 @@ int ass_alloc_event(ASS_Track *track) assert(track->n_events <= track->max_events); if (track->n_events == track->max_events) { - track->max_events += ASS_EVENTS_ALLOC; + track->max_events = track->max_events * 2 + 1; track->events = (ASS_Event *) realloc(track->events, sizeof(ASS_Event) * |