]> code.delx.au - pulseaudio/blobdiff - polyp/tagstruct.c
glib mainloop fix
[pulseaudio] / polyp / tagstruct.c
index cb93a9c4df3c78071a07b1d9c929d008d1390027..9578a9eb64db57f5d8d2cc958ac0795c6b23b2e4 100644 (file)
@@ -83,10 +83,10 @@ uint8_t* pa_tagstruct_free_data(struct pa_tagstruct*t, size_t *l) {
 static void extend(struct pa_tagstruct*t, size_t l) {
     assert(t && t->dynamic);
 
-    if (l <= t->allocated)
+    if (t->length+l <= t->allocated)
         return;
 
-    t->data = pa_xrealloc(t->data, t->allocated = l+100);
+    t->data = pa_xrealloc(t->data, t->allocated = t->length+l+100);
 }
 
 void pa_tagstruct_puts(struct pa_tagstruct*t, const char *s) {