diff options
author | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2011-01-15 22:26:27 +0200 |
---|---|---|
committer | Uoti Urpala <uau@glyph.nonexistent.invalid> | 2011-01-15 22:36:27 +0200 |
commit | 8636eb77c5f9f1e49a12e3e1653fe4c2e8e0bfc3 (patch) | |
tree | 38e5b66ffed2e90cd93109977bc2cd937fa0c90f | |
parent | ac79632ded16b62e0abf10f1cd319fba20bc0024 (diff) | |
download | mpv-8636eb77c5f9f1e49a12e3e1653fe4c2e8e0bfc3.tar.bz2 mpv-8636eb77c5f9f1e49a12e3e1653fe4c2e8e0bfc3.tar.xz |
options: add special -leak-report option
Add a special option "-leak-report" that enables talloc leak
reporting. It only works if it's given as the first argument.
The code abuses the CONF_TYPE_PRINT option type to make main option
parsing ignore the option. The parser incorrectly consumed the
following commandline argument as a "parameter" for options of this
type when they had the flag to not exit after printing the message.
Fix this. It makes no difference for any previously existing option I
think.
-rw-r--r-- | cfg-mplayer.h | 1 | ||||
-rw-r--r-- | m_option.c | 2 | ||||
-rw-r--r-- | mplayer.c | 3 |
3 files changed, 4 insertions, 2 deletions
diff --git a/cfg-mplayer.h b/cfg-mplayer.h index 7f0ee1f729..8b69908c7f 100644 --- a/cfg-mplayer.h +++ b/cfg-mplayer.h @@ -296,6 +296,7 @@ const m_option_t mplayer_opts[]={ {"lircconf", &lirc_configfile, CONF_TYPE_STRING, CONF_GLOBAL, 0, 0, NULL}, #endif + {"leak-report", "", CONF_TYPE_PRINT, 0, 0, 0, (void*)1}, // these should be removed when gmplayer is forgotten {"gui", "Internal GUI was removed. Use some other frontend instead.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, {"nogui", "Internal GUI was removed, -nogui is no longer valid.\n", CONF_TYPE_PRINT, 0, 0, 0, NULL}, diff --git a/m_option.c b/m_option.c index a0f01e6344..3cca348b1e 100644 --- a/m_option.c +++ b/m_option.c @@ -970,7 +970,7 @@ static int parse_print(const m_option_t* opt,const char *name, const char *param if(opt->priv == NULL) return M_OPT_EXIT; - return 1; + return 0; } const m_option_type_t m_option_type_print = { @@ -3871,7 +3871,8 @@ if (HAVE_CMOV) * file for some tools to link against. */ #ifndef DISABLE_MAIN int main(int argc,char* argv[]){ - + if (argc > 1 && !strcmp(argv[1], "-leak-report")) + talloc_enable_leak_report(); char * mem_ptr; |