From fec08a5e85c711d7d1b697f1ac61358dbdff5147 Mon Sep 17 00:00:00 2001 From: reimar Date: Thu, 5 May 2011 16:50:38 +0000 Subject: core: move m_config_free() last before exit Move the call to m_config_free() to be the last thing done before exiting, otherwise mp_msg() might stop working if options it uses are freed/reset. git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@33380 b3059339-0415-0410-9bf9-f77b7e298cf2 --- mplayer.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'mplayer.c') diff --git a/mplayer.c b/mplayer.c index 406148aa46..e65afe5b0f 100644 --- a/mplayer.c +++ b/mplayer.c @@ -747,11 +747,6 @@ void exit_player_with_rc(struct MPContext *mpctx, enum exit_reason how, int rc) current_module="exit_player"; -// free mplayer config - if(mpctx->mconfig) - m_config_free(mpctx->mconfig); - mpctx->mconfig = NULL; - if(mpctx->playtree_iter) play_tree_iter_free(mpctx->playtree_iter); mpctx->playtree_iter = NULL; @@ -781,6 +776,12 @@ void exit_player_with_rc(struct MPContext *mpctx, enum exit_reason how, int rc) } mp_msg(MSGT_CPLAYER,MSGL_DBG2,"max framesize was %d bytes\n",max_framesize); + // must be last since e.g. mp_msg uses option values + // that will be freed by this. + if (mpctx->mconfig) + m_config_free(mpctx->mconfig); + mpctx->mconfig = NULL; + exit(rc); } -- cgit v1.2.3