1
0
mirror of https://github.com/mpv-player/mpv synced 2025-03-02 12:20:57 +00:00

video_out.c: Fix a minor memory leak

The code that loops over possible video output drivers and tries to
find a working one does not free and reallocate the 'struct vo' if a
driver's preinit() call fails, but just overwrites the same struct
instead. This means that any memory the failing driver allocated as a
talloc subcontext will not be freed immediately. This is not even a
real leak as the memory will be freed once the VO is closed, but it's
still nicer to free things immediately. Add talloc_free_children() to
free any such talloc subcontexts that were created during the failing
preinit().
This commit is contained in:
Uoti Urpala 2009-05-09 02:37:35 +03:00
parent 1db1773ec2
commit 59ffaa41f0

View File

@ -364,6 +364,7 @@ struct vo *init_best_video_out(struct MPOpts *opts, struct vo_x11_state *x11,
free(name);
return vo; // success!
}
talloc_free_children(vo);
}
}
// continue...
@ -380,6 +381,7 @@ struct vo *init_best_video_out(struct MPOpts *opts, struct vo_x11_state *x11,
vo->driver = video_driver;
if (!vo_preinit(vo, vo_subdevice))
return vo; // success!
talloc_free_children(vo);
}
free(vo);
return NULL;