forked from enlightenment/efl
parent
27040661af
commit
ac21afc37f
|
@ -49,20 +49,16 @@ _new_from_buffer(const char *module, const char *context, const char *options, v
|
||||||
{
|
{
|
||||||
Eina_Mempool *mp;
|
Eina_Mempool *mp;
|
||||||
Eina_Module *m;
|
Eina_Module *m;
|
||||||
|
Eina_Error err = EINA_ERROR_NOT_MEMPOOL_MODULE;
|
||||||
|
|
||||||
eina_error_set(0);
|
eina_error_set(0);
|
||||||
m = eina_module_new(_group, module);
|
m = eina_module_new(_group, module);
|
||||||
if (!m) return NULL;
|
if (!m) return NULL;
|
||||||
if (eina_module_load(m) == EINA_FALSE) {
|
if (eina_module_load(m) == EINA_FALSE) goto on_error;
|
||||||
eina_error_set(EINA_ERROR_NOT_MEMPOOL_MODULE);
|
|
||||||
goto on_error;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
err = EINA_ERROR_OUT_OF_MEMORY;
|
||||||
mp = malloc(sizeof(Eina_Mempool));
|
mp = malloc(sizeof(Eina_Mempool));
|
||||||
if (!mp) {
|
if (!mp) goto on_error;
|
||||||
eina_error_set(EINA_ERROR_OUT_OF_MEMORY);
|
|
||||||
goto on_error;
|
|
||||||
}
|
|
||||||
mp->module = m;
|
mp->module = m;
|
||||||
mp->backend = eina_module_export_object_get(m);
|
mp->backend = eina_module_export_object_get(m);
|
||||||
mp->backend_data = mp->backend->init(context, options, args);
|
mp->backend_data = mp->backend->init(context, options, args);
|
||||||
|
@ -70,6 +66,7 @@ _new_from_buffer(const char *module, const char *context, const char *options, v
|
||||||
return mp;
|
return mp;
|
||||||
|
|
||||||
on_error:
|
on_error:
|
||||||
|
eina_error_set(err);
|
||||||
if (m) eina_module_delete(m);
|
if (m) eina_module_delete(m);
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue