comparison bitstream.c @ 6941:da73a98945ea libavcodec

Move *_static to bitstream.c which is the only file left which needs them.
author michael
date Fri, 30 May 2008 21:12:33 +0000
parents 24e01f7cc819
children 29ebf511fb22
comparison
equal deleted inserted replaced
6940:778ecab25dd8 6941:da73a98945ea
38 * @return Block of memory of requested size. 38 * @return Block of memory of requested size.
39 * @deprecated. Code which uses ff_realloc_static is broken/misdesigned 39 * @deprecated. Code which uses ff_realloc_static is broken/misdesigned
40 * and should correctly use static arrays 40 * and should correctly use static arrays
41 */ 41 */
42 attribute_deprecated av_alloc_size(2) 42 attribute_deprecated av_alloc_size(2)
43 void *ff_realloc_static(void *ptr, unsigned int size); 43 static void *ff_realloc_static(void *ptr, unsigned int size);
44
45 static unsigned int last_static = 0;
46 static unsigned int allocated_static = 0;
47 static void** array_static = NULL;
48
49 static void *av_mallocz_static(unsigned int size)
50 {
51 void *ptr = av_mallocz(size);
52
53 if(ptr){
54 array_static =av_fast_realloc(array_static, &allocated_static, sizeof(void*)*(last_static+1));
55 if(!array_static)
56 return NULL;
57 array_static[last_static++] = ptr;
58 }
59
60 return ptr;
61 }
62
63 static void *ff_realloc_static(void *ptr, unsigned int size)
64 {
65 int i;
66 if(!ptr)
67 return av_mallocz_static(size);
68 /* Look for the old ptr */
69 for(i = 0; i < last_static; i++) {
70 if(array_static[i] == ptr) {
71 array_static[i] = av_realloc(array_static[i], size);
72 return array_static[i];
73 }
74 }
75 return NULL;
76
77 }
78
79 static void av_free_static(void)
80 {
81 while(last_static){
82 av_freep(&array_static[--last_static]);
83 }
84 av_freep(&array_static);
85 }
86
87 /**
88 * Call av_free_static automatically before it's too late
89 */
90
91 static void do_free(void) __attribute__ ((destructor));
92
93 static void do_free(void)
94 {
95 av_free_static();
96 }
97
44 98
45 void align_put_bits(PutBitContext *s) 99 void align_put_bits(PutBitContext *s)
46 { 100 {
47 #ifdef ALT_BITSTREAM_WRITER 101 #ifdef ALT_BITSTREAM_WRITER
48 put_bits(s,( - s->index) & 7,0); 102 put_bits(s,( - s->index) & 7,0);