summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2014-01-23 18:38:51 +0100
committerwm4 <wm4@nowhere>2014-01-24 01:00:48 +0100
commit5114ff4f2cef1846fbcc9ffcdfddea32bddb0657 (patch)
tree7c3fe43fc66f648dde181c6668cbdf9ee31fbd79
parentd87fd620350b891d9387e0708453610ee2b8bb49 (diff)
downloadlibass-5114ff4f2cef1846fbcc9ffcdfddea32bddb0657.tar.bz2
libass-5114ff4f2cef1846fbcc9ffcdfddea32bddb0657.tar.xz
Allocate track array exponentially
This reduces the frequency of reallocations.
-rw-r--r--libass/ass.c3
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) *