Factor duplicated loop

Originally committed as revision 11899 to svn://svn.ffmpeg.org/ffmpeg/trunk
pull/126/head
Vitor Sessak 17 years ago
parent d3a4e41c8a
commit 37e0b997a8
  1. 22
      libavfilter/formats.c

@ -21,6 +21,16 @@
#include "avfilter.h"
/** merge and update all the references */
static void merge_ref(AVFilterFormats *ret, AVFilterFormats *a)
{
int i;
for(i = 0; i < a->refcount; i ++) {
ret->refs[ret->refcount] = a->refs[i];
*ret->refs[ret->refcount++] = ret;
}
}
AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b)
{
AVFilterFormats *ret;
@ -43,16 +53,10 @@ AVFilterFormats *avfilter_merge_formats(AVFilterFormats *a, AVFilterFormats *b)
return NULL;
}
/* merge and update all the references */
ret->refs = av_malloc(sizeof(AVFilterFormats**)*(a->refcount+b->refcount));
for(i = 0; i < a->refcount; i ++) {
ret->refs[ret->refcount] = a->refs[i];
*ret->refs[ret->refcount++] = ret;
}
for(i = 0; i < b->refcount; i ++) {
ret->refs[ret->refcount] = b->refs[i];
*ret->refs[ret->refcount++] = ret;
}
merge_ref(ret, a);
merge_ref(ret, b);
av_free(a->refs);
av_free(a->formats);

Loading…
Cancel
Save