Browse Source

As *_static are not deallocated anymore except on program termination

we do not need to keep track of them anymore.
Fixes CID117 RUN2 and various race conditions.

Originally committed as revision 13571 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Michael Niedermayer 17 years ago
parent
commit
b9c8388710
1 changed files with 2 additions and 26 deletions
  1. +2
    -26
      libavcodec/bitstream.c

+ 2
- 26
libavcodec/bitstream.c View File

@@ -42,38 +42,14 @@
attribute_deprecated av_alloc_size(2)
static void *ff_realloc_static(void *ptr, unsigned int size);

static unsigned int last_static = 0;
static unsigned int allocated_static = 0;
static void** array_static = NULL;

static void *av_mallocz_static(unsigned int size)
{
void *ptr = av_mallocz(size);

if(ptr){
array_static =av_fast_realloc(array_static, &allocated_static, sizeof(void*)*(last_static+1));
if(!array_static)
return NULL;
array_static[last_static++] = ptr;
}

return ptr;
return av_mallocz(size);
}

static void *ff_realloc_static(void *ptr, unsigned int size)
{
int i;
if(!ptr)
return av_mallocz_static(size);
/* Look for the old ptr */
for(i = 0; i < last_static; i++) {
if(array_static[i] == ptr) {
array_static[i] = av_realloc(array_static[i], size);
return array_static[i];
}
}
return NULL;

return av_realloc(ptr, size);
}

void align_put_bits(PutBitContext *s)


Loading…
Cancel
Save