fix memleak
Originally committed as revision 27332 to svn://svn.mplayerhq.hu/mplayer/trunk/libswscale
This commit is contained in:
parent
47b7382d29
commit
091d3bdc73
@ -932,6 +932,7 @@ static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outF
|
|||||||
int minFilterSize;
|
int minFilterSize;
|
||||||
double *filter=NULL;
|
double *filter=NULL;
|
||||||
double *filter2=NULL;
|
double *filter2=NULL;
|
||||||
|
int ret= -1;
|
||||||
#if defined(ARCH_X86)
|
#if defined(ARCH_X86)
|
||||||
if (flags & SWS_CPU_CAPS_MMX)
|
if (flags & SWS_CPU_CAPS_MMX)
|
||||||
asm volatile("emms\n\t"::: "memory"); //FIXME this should not be required but it IS (even for non-MMX versions)
|
asm volatile("emms\n\t"::: "memory"); //FIXME this should not be required but it IS (even for non-MMX versions)
|
||||||
@ -1211,8 +1212,8 @@ static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outF
|
|||||||
filterSize= (minFilterSize +(filterAlign-1)) & (~(filterAlign-1));
|
filterSize= (minFilterSize +(filterAlign-1)) & (~(filterAlign-1));
|
||||||
assert(filterSize > 0);
|
assert(filterSize > 0);
|
||||||
filter= av_malloc(filterSize*dstW*sizeof(double));
|
filter= av_malloc(filterSize*dstW*sizeof(double));
|
||||||
if (filterSize >= MAX_FILTER_SIZE)
|
if (filterSize >= MAX_FILTER_SIZE || !filter)
|
||||||
return -1;
|
goto error;
|
||||||
*outFilterSize= filterSize;
|
*outFilterSize= filterSize;
|
||||||
|
|
||||||
if (flags&SWS_PRINT_INFO)
|
if (flags&SWS_PRINT_INFO)
|
||||||
@ -1228,7 +1229,6 @@ static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outF
|
|||||||
else filter[i*filterSize + j]= filter2[i*filter2Size + j];
|
else filter[i*filterSize + j]= filter2[i*filter2Size + j];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
av_freep(&filter2);
|
|
||||||
|
|
||||||
|
|
||||||
//FIXME try to align filterpos if possible
|
//FIXME try to align filterpos if possible
|
||||||
@ -1296,8 +1296,11 @@ static inline int initFilter(int16_t **outFilter, int16_t **filterPos, int *outF
|
|||||||
(*outFilter)[j + i]= (*outFilter)[j + i - (*outFilterSize)];
|
(*outFilter)[j + i]= (*outFilter)[j + i - (*outFilterSize)];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ret=0;
|
||||||
|
error:
|
||||||
av_free(filter);
|
av_free(filter);
|
||||||
return 0;
|
av_free(filter2);
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
#ifdef COMPILE_MMX2
|
#ifdef COMPILE_MMX2
|
||||||
|
Loading…
x
Reference in New Issue
Block a user