Allocate vo struct with talloc

Also allocate the private vo_xv struct as a child and remove explicit
free() for it.
This commit is contained in:
Uoti Urpala 2008-04-20 06:04:10 +03:00
parent 95a909b4fd
commit 1ebfddd812
2 changed files with 5 additions and 5 deletions

View File

@ -11,6 +11,7 @@
#include "config.h"
#include "options.h"
#include "talloc.h"
#include "video_out.h"
#include "aspect.h"
#include "geometry.h"
@ -282,7 +283,7 @@ void vo_check_events(struct vo *vo)
void vo_destroy(struct vo *vo)
{
vo->driver->uninit(vo);
free(vo);
talloc_free(vo);
}
void list_video_out(void)
@ -301,7 +302,7 @@ struct vo *init_best_video_out(struct MPOpts *opts)
{
char **vo_list = opts->video_driver_list;
int i;
struct vo *vo = malloc(sizeof *vo);
struct vo *vo = talloc_ptrtype(NULL, vo);
// first try the preferred drivers, with their optional subdevice param:
if (vo_list && vo_list[0])
while (vo_list[0][0]) {

View File

@ -23,6 +23,7 @@ Buffer allocation:
#include "config.h"
#include "options.h"
#include "talloc.h"
#include "mp_msg.h"
#include "help_mp.h"
#include "video_out.h"
@ -707,8 +708,6 @@ static void uninit(struct vo *vo)
mp_input_rm_event_fd(ConnectionNumber(mDisplay));
// uninit() shouldn't get called unless initialization went past vo_init()
vo_x11_uninit();
free(ctx);
vo->priv = NULL;
}
static void x11_fd_callback(void *ctx)
@ -723,7 +722,7 @@ static int preinit(struct vo *vo, const char *arg)
unsigned int i;
strarg_t ck_src_arg = { 0, NULL };
strarg_t ck_method_arg = { 0, NULL };
struct xvctx *ctx = calloc(1, sizeof *ctx);
struct xvctx *ctx = talloc_zero(vo, struct xvctx);
vo->priv = ctx;
opt_t subopts[] =