mirror of https://git.ffmpeg.org/ffmpeg.git
1000l in av_mallocz_static()
less overallocation in av_fast_realloc() for small arrays Originally committed as revision 2913 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
8d1f2ba5e1
commit
4e39ab4c97
|
@ -60,7 +60,7 @@ void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size)
|
||||||
if(min_size < *size)
|
if(min_size < *size)
|
||||||
return ptr;
|
return ptr;
|
||||||
|
|
||||||
*size= min_size + 10*1024;
|
*size= 17*min_size/16 + 32;
|
||||||
|
|
||||||
return av_realloc(ptr, *size);
|
return av_realloc(ptr, *size);
|
||||||
}
|
}
|
||||||
|
@ -69,7 +69,6 @@ void *av_fast_realloc(void *ptr, unsigned int *size, unsigned int min_size)
|
||||||
static unsigned int last_static = 0;
|
static unsigned int last_static = 0;
|
||||||
static unsigned int allocated_static = 0;
|
static unsigned int allocated_static = 0;
|
||||||
static void** array_static = NULL;
|
static void** array_static = NULL;
|
||||||
static const unsigned int grow_static = 64; // ^2
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* allocation of static arrays - do not use for normal allocation.
|
* allocation of static arrays - do not use for normal allocation.
|
||||||
|
@ -79,7 +78,7 @@ void *av_mallocz_static(unsigned int size)
|
||||||
void *ptr = av_mallocz(size);
|
void *ptr = av_mallocz(size);
|
||||||
|
|
||||||
if(ptr){
|
if(ptr){
|
||||||
array_static =av_fast_realloc(array_static, &allocated_static, last_static+1);
|
array_static =av_fast_realloc(array_static, &allocated_static, sizeof(void*)*(last_static+1));
|
||||||
array_static[last_static++] = ptr;
|
array_static[last_static++] = ptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue