From fe6b2f9103450679a07da44bdad31707b597cd20 Mon Sep 17 00:00:00 2001 From: wm4 Date: Mon, 21 May 2018 15:21:09 +0200 Subject: [PATCH] m_config: add a special define to access main config Passing NULL to mp_get_config_group() returns the main option struct. This is just a dumb hack to deal with inconsistencies caused by legacy things (as I'll claim), and will probably be changed in the future. So before littering the whole code base with hard to find NULL parameters, require using callers an easy to find separate define. --- demux/demux_mkv_timeline.c | 2 +- options/m_config.h | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/demux/demux_mkv_timeline.c b/demux/demux_mkv_timeline.c index 2a02a35dc5..32eab2ca8f 100644 --- a/demux/demux_mkv_timeline.c +++ b/demux/demux_mkv_timeline.c @@ -517,7 +517,7 @@ void build_ordered_chapter_timeline(struct timeline *tl) .global = tl->global, .tl = tl, .demuxer = demuxer, - .opts = mp_get_config_group(ctx, tl->global, NULL), + .opts = mp_get_config_group(ctx, tl->global, GLOBAL_CONFIG), }; if (!ctx->opts->ordered_chapters || !demuxer->access_references) { diff --git a/options/m_config.h b/options/m_config.h index 19da75e83c..40cd367613 100644 --- a/options/m_config.h +++ b/options/m_config.h @@ -278,15 +278,17 @@ struct m_config_cache { void *wakeup_cb_ctx; }; +#define GLOBAL_CONFIG NULL + // Create a mirror copy from the global options. // Keep in mind that a m_config_cache object is not thread-safe; it merely // provides thread-safe access to the global options. All API functions for // the same m_config_cache object must synchronized, unless otherwise noted. // ta_parent: parent for the returned allocation // global: option data source -// group: the option group to return. This can be NULL for the global option -// struct (MPOpts), or m_sub_options used in a certain OPT_SUBSTRUCT() -// item. +// group: the option group to return. This can be GLOBAL_CONFIG for the global +// option struct (MPOpts), or m_sub_options used in a certain +// OPT_SUBSTRUCT() item. struct m_config_cache *m_config_cache_alloc(void *ta_parent, struct mpv_global *global, const struct m_sub_options *group); @@ -317,7 +319,7 @@ bool m_config_cache_update(struct m_config_cache *cache); // Like m_config_cache_alloc(), but return the struct (m_config_cache->opts) // directly, with no way to update the config. Basically this returns a copy // with a snapshot of the current option values. -// group==NULL is a special case, and always returns the root group. +// group==GLOBAL_CONFIG is a special case, and always returns the root group. void *mp_get_config_group(void *ta_parent, struct mpv_global *global, const struct m_sub_options *group);