]> granicus.if.org Git - libass/commitdiff
Get rid of MAX_EVENTS limit
authorGrigori Goronzy <greg@blackbox>
Wed, 29 Jul 2009 23:04:29 +0000 (01:04 +0200)
committerGrigori Goronzy <greg@blackbox>
Wed, 29 Jul 2009 23:05:19 +0000 (01:05 +0200)
Allocate the maximum possible number of used events in fix_collisions
dynamically, eliminating the MAX_EVENTS limit.

libass/ass_render.c

index 440099f4c56e684d96bce7a961290866223d1731..8c249e04eb870c2c912eb08512e1aae763c20775 100644 (file)
@@ -3334,8 +3334,6 @@ static int cmp_event_layer(const void *p1, const void *p2)
     return 0;
 }
 
-#define MAX_EVENTS 100
-
 static render_priv_t *get_render_priv(ass_renderer_t *render_priv,
                                       ass_event_t *event)
 {
@@ -3421,7 +3419,7 @@ static int fit_segment(segment_t *s, segment_t *fixed, int *cnt, int dir)
 static void
 fix_collisions(ass_renderer_t *render_priv, event_images_t *imgs, int cnt)
 {
-    segment_t used[MAX_EVENTS];
+    segment_t *used = malloc(cnt * sizeof(*used));
     int cnt_used = 0;
     int i, j;
 
@@ -3477,6 +3475,8 @@ fix_collisions(ass_renderer_t *render_priv, event_images_t *imgs, int cnt)
         }
 
     }
+
+    free(used);
 }
 
 /**