Enlightenment CVS committal Author : lordchaos Project : e17 Module : proto
Dir : e17/proto/entropy/src/plugins Modified Files: etk_list_viewer.c filesystem.c Log Message: * Catch a few different types of errors - and don't SEGV :) =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/entropy/src/plugins/etk_list_viewer.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -3 -r1.19 -r1.20 --- etk_list_viewer.c 26 Feb 2006 04:43:03 -0000 1.19 +++ etk_list_viewer.c 26 Feb 2006 05:04:57 -0000 1.20 @@ -354,20 +354,23 @@ Etk_Tree_Col* col4; Etk_Tree_Col* col5; - col1 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 0); - col2 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 1); - col3 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 2); - col4 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 3); - col5 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 4); + /*If !obj, it has been deleted - fail silently*/ + if (obj) { + col1 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 0); + col2 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 1); + col3 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 2); + col4 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 3); + col5 = etk_tree_nth_col_get(ETK_TREE(viewer->tree), 4); + + snprintf(buffer,50, "%d Kb", file_stat->stat_obj->st_size / 1024); - snprintf(buffer,50, "%d Kb", file_stat->stat_obj->st_size / 1024); - - etk_tree_freeze(ETK_TREE(viewer->tree)); - etk_tree_row_fields_set((Etk_Tree_Row*)obj->icon, + etk_tree_freeze(ETK_TREE(viewer->tree)); + etk_tree_row_fields_set((Etk_Tree_Row*)obj->icon, col3, buffer, col5, ctime(&file_stat->stat_obj->st_mtime), NULL); - etk_tree_thaw(ETK_TREE(viewer->tree)); + etk_tree_thaw(ETK_TREE(viewer->tree)); + } } break; =================================================================== RCS file: /cvsroot/enlightenment/e17/proto/entropy/src/plugins/filesystem.c,v retrieving revision 1.45 retrieving revision 1.46 diff -u -3 -r1.45 -r1.46 --- filesystem.c 26 Feb 2006 04:43:03 -0000 1.45 +++ filesystem.c 26 Feb 2006 05:04:57 -0000 1.46 @@ -136,6 +136,7 @@ entropy_gui_event *gui_event; entropy_gui_component_instance *instance; entropy_file_stat *file_stat; + entropy_file_listener* listener; char *md5; @@ -169,27 +170,31 @@ file_stat->stat_obj->st_ctime = data->stat.stat_obj.ist_ctime; /*Retrieve the file. This is bad - the file might not exist anymore! */ - file_stat->file = entropy_core_file_cache_retrieve (md5)->file; + listener = entropy_core_file_cache_retrieve (md5); + if (listener) { + file_stat->file = listener->file; + + /*Build up the gui_event wrapper */ + gui_event = entropy_malloc (sizeof (entropy_gui_event)); + gui_event->event_type = + entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_STAT_AVAILABLE); + gui_event->data = file_stat; - /*Build up the gui_event wrapper */ - gui_event = entropy_malloc (sizeof (entropy_gui_event)); - gui_event->event_type = - entropy_core_gui_event_get (ENTROPY_GUI_EVENT_FILE_STAT_AVAILABLE); - gui_event->data = file_stat; - - //printf("File stat at %p\n", file_stat); - - ecore_hash_remove (stat_request_hash, md5); - entropy_free (folder); - entropy_free (md5); + //printf("File stat at %p\n", file_stat); - /*Call the callback stuff */ - entropy_core_layout_notify_event (instance, gui_event, + /*Call the callback stuff */ + entropy_core_layout_notify_event (instance, gui_event, ENTROPY_EVENT_LOCAL); + } else { + printf("Error! Couldn't fine listener for '%s'\n", data->resp_command.file_command.files[0]->path); + } /*Do some freeing */ entropy_free (file_stat); entropy_free (file_stat->stat_obj); + ecore_hash_remove (stat_request_hash, md5); + entropy_free (folder); + entropy_free (md5); /*No need to free event - notify_event frees it for us */ ------------------------------------------------------- This SF.Net email is sponsored by xPML, a groundbreaking scripting language that extends applications into web and mobile media. Attend the live webcast and join the prime developer group breaking into this new coding territory! http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642 _______________________________________________ enlightenment-cvs mailing list enlightenment-cvs@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs