efl/src/lib/eolian/database_function.c

35 lines
1.2 KiB
C

#include <Eina.h>
#include "eolian_database.h"
void
database_function_del(Eolian_Function *fid)
{
Eolian_Function_Parameter *param;
if (!fid) return;
if (fid->base.file) eina_stringshare_del(fid->base.file);
eina_stringshare_del(fid->name);
EINA_LIST_FREE(fid->keys, param) database_parameter_del(param);
EINA_LIST_FREE(fid->params, param) database_parameter_del(param);
database_type_del(fid->get_ret_type);
database_type_del(fid->set_ret_type);
database_expr_del(fid->get_ret_val);
database_expr_del(fid->set_ret_val);
if (fid->get_legacy) eina_stringshare_del(fid->get_legacy);
if (fid->set_legacy) eina_stringshare_del(fid->set_legacy);
if (fid->get_description) eina_stringshare_del(fid->get_description);
if (fid->set_description) eina_stringshare_del(fid->set_description);
if (fid->get_return_comment) eina_stringshare_del(fid->get_return_comment);
if (fid->set_return_comment) eina_stringshare_del(fid->set_return_comment);
free(fid);
}
Eolian_Function *
database_function_new(const char *function_name, Eolian_Function_Type foo_type)
{
Eolian_Function *fid = calloc(1, sizeof(*fid));
fid->name = eina_stringshare_add(function_name);
fid->type = foo_type;
return fid;
}