forked from enlightenment/efl
bindings: Fix disposal of eolian state
Summary: It was actually leaking before. Let's use some RAII classes that were already there. ref T8280 Reviewers: q66, felipealmeida, brunobelo Reviewed By: q66 Subscribers: cedric, #reviewers, #committers Tags: #efl Maniphest Tasks: T8280 Differential Revision: https://phab.enlightenment.org/D10237
This commit is contained in:
parent
62139f2292
commit
507061a145
|
@ -40,10 +40,6 @@ struct options_type
|
|||
bool main_header;
|
||||
|
||||
options_type() : main_header(false) {}
|
||||
~options_type()
|
||||
{
|
||||
eolian_state_free(state);
|
||||
}
|
||||
};
|
||||
|
||||
static efl::eina::log_domain domain("eolian_cxx");
|
||||
|
@ -385,19 +381,6 @@ run(options_type const& opts)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
state_init(options_type const& opts)
|
||||
{
|
||||
Eolian_State *eos = ::eolian_state_new();
|
||||
if (!eos)
|
||||
{
|
||||
EINA_CXX_DOM_LOG_ERR(eolian_cxx::domain)
|
||||
<< "Eolian failed creating state";
|
||||
assert(false && "Error creating Eolian state");
|
||||
}
|
||||
opts.state = eos;
|
||||
}
|
||||
|
||||
static void
|
||||
database_load(options_type const& opts)
|
||||
{
|
||||
|
@ -532,8 +515,9 @@ int main(int argc, char **argv)
|
|||
{
|
||||
efl::eina::eina_init eina_init;
|
||||
efl::eolian::eolian_init eolian_init;
|
||||
efl::eolian::eolian_state eolian_state;
|
||||
eolian_cxx::options_type opts = opts_get(argc, argv);
|
||||
eolian_cxx::state_init(opts);
|
||||
opts.state = eolian_state.value;
|
||||
eolian_cxx::database_load(opts);
|
||||
eolian_cxx::run(opts);
|
||||
}
|
||||
|
|
|
@ -173,6 +173,8 @@ run(options_type const& opts)
|
|||
throw std::runtime_error("Failed to generate alias.");
|
||||
}
|
||||
}
|
||||
::eina_iterator_free(aliases);
|
||||
|
||||
|
||||
// Constants
|
||||
{
|
||||
|
@ -226,20 +228,6 @@ run(options_type const& opts)
|
|||
}
|
||||
}
|
||||
|
||||
static void
|
||||
state_init(options_type const& opts)
|
||||
{
|
||||
Eolian_State *eos = ::eolian_state_new();
|
||||
if (!eos)
|
||||
{
|
||||
EINA_CXX_DOM_LOG_ERR(eolian_mono::domain)
|
||||
<< "Eolian failed creating state";
|
||||
assert(false && "Error creating state");
|
||||
}
|
||||
opts.state = eos;
|
||||
opts.unit = (Eolian_Unit*)eos;
|
||||
}
|
||||
|
||||
static void
|
||||
database_load(options_type const& opts)
|
||||
{
|
||||
|
@ -420,8 +408,10 @@ int main(int argc, char **argv)
|
|||
{
|
||||
efl::eina::eina_init eina_init;
|
||||
efl::eolian::eolian_init eolian_init;
|
||||
efl::eolian::eolian_state eolian_state;
|
||||
eolian_mono::options_type opts = opts_get(argc, argv);
|
||||
eolian_mono::state_init(opts);
|
||||
opts.state = eolian_state.value;
|
||||
opts.unit = eolian_state.as_unit();
|
||||
eolian_mono::database_load(opts);
|
||||
eolian_mono::run(opts);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue