summaryrefslogtreecommitdiffstats
path: root/options/m_config.c
diff options
context:
space:
mode:
Diffstat (limited to 'options/m_config.c')
-rw-r--r--options/m_config.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/options/m_config.c b/options/m_config.c
index 606e836d20..7237972660 100644
--- a/options/m_config.c
+++ b/options/m_config.c
@@ -1437,8 +1437,10 @@ bool m_config_is_in_group(struct m_config *config,
void *mp_get_config_group(void *ta_parent, struct mpv_global *global,
const struct m_sub_options *group)
{
- assert(ta_parent); // without you'd necessarily leak memory
- struct m_config_cache *cache = m_config_cache_alloc(ta_parent, global, group);
+ struct m_config_cache *cache = m_config_cache_alloc(NULL, global, group);
+ // Make talloc_free(cache->opts) free the entire cache.
+ ta_set_parent(cache->opts, ta_parent);
+ ta_set_parent(cache, cache->opts);
return cache->opts;
}