diff options
author | wm4 <wm4@nowhere> | 2012-08-04 11:14:38 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2012-08-04 19:59:56 +0200 |
commit | 37c03f2c81a443e910eeb3b2613865dce59c54bf (patch) | |
tree | e9d5ae5c0ed1fce9f6f689f03edec75bf1e7cca4 /m_struct.c | |
parent | ab63072b47f9710852636a78a339b368b493e329 (diff) | |
download | mpv-37c03f2c81a443e910eeb3b2613865dce59c54bf.tar.bz2 mpv-37c03f2c81a443e910eeb3b2613865dce59c54bf.tar.xz |
options: revert passing around talloc contexts
This reverts commit 48f0692ab9 "options: make option struct the talloc parent of options".
This made things actually more complicated. It introduced a new
parameter to the option parse and copy functions, which was used
inconsistently. Some code passed a parent, some not. Morever, you have
to call m_option_free() anyway, because not all options actually
respect the talloc parent. There is also the question whether passing
NULL as parent is supposed to work, or if you still have to implement
m_config_free().
On the other hand, this simplifies nothing. I assume the intention was
being able to free all option values with a single talloc_free() call,
but the same goal can be reached by simply freeing the m_config struct.
(The m_config talloc destructor will free each option values.)
Get rid of the talloc parent context parameter. This essentially
reverts commit 48f0692ab9 ("options: make option struct the talloc parent of options").
In video_out.c, make the VO priv struct the talloc parent for the
m_config object, so that destroying the VO will free the options.
The ability to free the m_config struct and all its managed options was
introduced in commit 89a17bcda6c.
Diffstat (limited to 'm_struct.c')
-rw-r--r-- | m_struct.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/m_struct.c b/m_struct.c index 5ee932945a..82cdc0ee27 100644 --- a/m_struct.c +++ b/m_struct.c @@ -71,7 +71,7 @@ int m_struct_set(const m_struct_t *st, void *obj, const char *field, return 0; } - if(f->type->parse(f, bstr0(field), param, false, M_ST_MB_P(obj,f->p), NULL) < 0) { + if(f->type->parse(f, bstr0(field), param, false, M_ST_MB_P(obj,f->p)) < 0) { mp_msg(MSGT_CFGPARSER, MSGL_ERR,"Struct %s, field %s parsing error: %.*s\n", st->name, field, BSTR_P(param)); return 0; |