mirror of https://github.com/mpv-player/mpv
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:
parent
95a909b4fd
commit
1ebfddd812
|
@ -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]) {
|
||||
|
|
|
@ -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[] =
|
||||
|
|
Loading…
Reference in New Issue