fix leak on exit in aclib

This commit is contained in:
niels
2015-06-23 23:47:17 +02:00
parent bfeeaac6a6
commit d80cee0337
4 changed files with 18 additions and 4 deletions

View File

@@ -80,6 +80,8 @@ extern void ac_rescale(const uint8_t *src1, const uint8_t *src2,
uint8_t *dest, int bytes, uint8_t *dest, int bytes,
uint32_t weight1, uint32_t weight2); uint32_t weight1, uint32_t weight2);
extern void ac_destroy();
/* Image format manipulation is available in aclib/imgconvert.h */ /* Image format manipulation is available in aclib/imgconvert.h */
/*************************************************************************/ /*************************************************************************/

View File

@@ -106,6 +106,12 @@ int register_conversion(ImageFormat srcfmt, ImageFormat destfmt,
return 1; return 1;
} }
void ac_destroy()
{
if( n_conversions > 0 )
free(conversions);
}
/*************************************************************************/ /*************************************************************************/
/* /*

View File

@@ -154,6 +154,11 @@ void vj_mem_init(void)
task_init(); task_init();
} }
void vj_mem_destroy()
{
ac_destroy();
}
int vj_mem_threaded_init(int w, int h) int vj_mem_threaded_init(int w, int h)
{ {
int n_cpus = task_num_cpus(); int n_cpus = task_num_cpus();

View File

@@ -57,8 +57,9 @@ extern void benchmark_veejay(int w, int h);
extern void *vj_hmalloc(size_t sze, const char *name); extern void *vj_hmalloc(size_t sze, const char *name);
extern char *vj_strdup(const char *s); extern char *vj_strdup(const char *s);
extern char *vj_strndup(const char *s, size_t n ); extern char *vj_strndup(const char *s, size_t n );
void vj_simple_pool_free( void *ptr ); extern void vj_simple_pool_free( void *ptr );
void *vj_simple_pool_alloc( void *ptr, size_t s ); extern void *vj_simple_pool_alloc( void *ptr, size_t s );
void *vj_simple_pool_init( size_t s ); extern void *vj_simple_pool_init( size_t s );
void vj_simple_pool_reset( void *ptr ); extern void vj_simple_pool_reset( void *ptr );
extern void vj_mem_destroy();
#endif #endif