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;
|
bool main_header;
|
||||||
|
|
||||||
options_type() : main_header(false) {}
|
options_type() : main_header(false) {}
|
||||||
~options_type()
|
|
||||||
{
|
|
||||||
eolian_state_free(state);
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
static efl::eina::log_domain domain("eolian_cxx");
|
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
|
static void
|
||||||
database_load(options_type const& opts)
|
database_load(options_type const& opts)
|
||||||
{
|
{
|
||||||
|
@ -532,8 +515,9 @@ int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
efl::eina::eina_init eina_init;
|
efl::eina::eina_init eina_init;
|
||||||
efl::eolian::eolian_init eolian_init;
|
efl::eolian::eolian_init eolian_init;
|
||||||
|
efl::eolian::eolian_state eolian_state;
|
||||||
eolian_cxx::options_type opts = opts_get(argc, argv);
|
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::database_load(opts);
|
||||||
eolian_cxx::run(opts);
|
eolian_cxx::run(opts);
|
||||||
}
|
}
|
||||||
|
|
|
@ -173,6 +173,8 @@ run(options_type const& opts)
|
||||||
throw std::runtime_error("Failed to generate alias.");
|
throw std::runtime_error("Failed to generate alias.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
::eina_iterator_free(aliases);
|
||||||
|
|
||||||
|
|
||||||
// Constants
|
// 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
|
static void
|
||||||
database_load(options_type const& opts)
|
database_load(options_type const& opts)
|
||||||
{
|
{
|
||||||
|
@ -420,8 +408,10 @@ int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
efl::eina::eina_init eina_init;
|
efl::eina::eina_init eina_init;
|
||||||
efl::eolian::eolian_init eolian_init;
|
efl::eolian::eolian_init eolian_init;
|
||||||
|
efl::eolian::eolian_state eolian_state;
|
||||||
eolian_mono::options_type opts = opts_get(argc, argv);
|
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::database_load(opts);
|
||||||
eolian_mono::run(opts);
|
eolian_mono::run(opts);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue