Mercurial > mplayer.hg
view libmpcodecs/vd_internal.h @ 9177:01a713dcaf23
disable free() in string and string_list parsers. yes, it's a hack
(and a little memleak), but i can explain :)
[note it's just a few kB memleak, but it's the price of stability without
full code review/audit - there are hunderds of possible double free()]
the old config parser didn't free() strings/stringlists, but didn't even
allocate them by default. the new one always free(), and it causes
memcorruption/sig11 at cases like this:
char* dvd_device="/dev/dvd";
{"dvd-device", &dvd_device, CONF_TYPE_STRING, 0, 0, 0, NULL},
since string constansts (allocated in .TEXT segment) cannot be free()'d
author | arpi |
---|---|
date | Thu, 30 Jan 2003 21:28:01 +0000 |
parents | 1972c3475d93 |
children | 4faee1254928 |
line wrap: on
line source
#include "codec-cfg.h" #include "img_format.h" #include "stream.h" #include "demuxer.h" #include "stheader.h" #include "vd.h" extern int divx_quality; // prototypes: //static vd_info_t info; static int control(sh_video_t *sh,int cmd,void* arg,...); static int init(sh_video_t *sh); static void uninit(sh_video_t *sh); static mp_image_t* decode(sh_video_t *sh,void* data,int len,int flags); #define LIBVD_EXTERN(x) vd_functions_t mpcodecs_vd_##x = {\ &info,\ init,\ uninit,\ control,\ decode\ };