Fix some crashes and a bunch of memory leaks/errors. There are still a few memory leaks originating deep within ewl somewhere. Also, if you don't open the config_inwin before closing the program, there are some errors.
This commit is contained in:
@@ -10,6 +10,35 @@ static void ecdb_filelist_focus_handle(int action, Evas_Object *fl,
|
||||
static void ecdb_welcome_page_hide_finished(void *data, Evas_Object *o,
|
||||
const char *emission,
|
||||
const char *source);
|
||||
static void _page_del(void *data, Evas *e, Evas_Object *obj, void *ev);
|
||||
static void _filelist_del(Ewl_Widget *w, void *ev_data, void *data);
|
||||
|
||||
static void
|
||||
_filelist_del(Ewl_Widget *w, void *ev_data __UNUSED__, void *data __UNUSED__)
|
||||
{
|
||||
Ewl_Filelist_Filter *f;
|
||||
|
||||
f = ewl_filelist_filter_get(EWL_FILELIST(w));
|
||||
if (f)
|
||||
{
|
||||
if (f->extension)
|
||||
free(f->extension);
|
||||
free(f);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
_page_del(void *data, Evas *e __UNUSED__, Evas_Object *obj __UNUSED__,
|
||||
void *ev __UNUSED__)
|
||||
{
|
||||
Ecdb_Page *page;
|
||||
|
||||
page = data;
|
||||
if (!page)
|
||||
return;
|
||||
|
||||
free(page);
|
||||
}
|
||||
|
||||
/* XXX These need to be fixed when Ecdb_Page become the swallow,
|
||||
* whereas it is the actual gui as well
|
||||
@@ -245,6 +274,8 @@ ecdb_create_main_gui(void)
|
||||
evas_object_resize(em->page->gui, mw, mh);
|
||||
ecore_evas_resize(em->main_win_ee, mw, mh);
|
||||
ecore_evas_size_min_set(em->main_win_ee, mw, mh);
|
||||
evas_object_event_callback_add(em->page->gui, EVAS_CALLBACK_DEL, _page_del,
|
||||
em->page);
|
||||
evas_object_move(em->page->gui, 0, 0);
|
||||
evas_object_show(em->page->gui);
|
||||
|
||||
@@ -337,16 +368,18 @@ ecdb_handle_typebuf(Evas_Object *gui, Ewl_Widget *fl)
|
||||
{
|
||||
filter = calloc(sizeof(Ewl_Filelist_Filter), 1);
|
||||
}
|
||||
|
||||
if (filter->extension)
|
||||
else
|
||||
{
|
||||
if (strcmp(filter->extension, ext))
|
||||
if (filter->extension)
|
||||
{
|
||||
FREE(filter->extension);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
if (strcmp(filter->extension, ext))
|
||||
{
|
||||
FREE(filter->extension);
|
||||
}
|
||||
else
|
||||
{
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -455,6 +488,8 @@ ecdb_filelist_show(Ecdb_Page *page)
|
||||
|
||||
filelist = ewl_filelist_new();
|
||||
ewl_container_child_append(EWL_CONTAINER(embed), filelist);
|
||||
ewl_callback_prepend(EWL_WIDGET(filelist), EWL_CALLBACK_DESTROY,
|
||||
_filelist_del, NULL);
|
||||
ewl_filelist_directory_set(EWL_FILELIST(filelist), getenv("HOME"));
|
||||
ewl_widget_show(filelist);
|
||||
|
||||
|
Reference in New Issue
Block a user