This is an automated email from the git hooks/post-receive script.

nomad pushed a commit to branch master
in repository apps/xfdashboard.

commit 13b037eedc6e9c329e4ef1dad659f1c3e1c24c48
Author: Stephan Haller <no...@froevel.de>
Date:   Sat Nov 28 09:55:42 2015 +0100

    Another try for a workaround at FreeBSD with broken directory monitor in 
Glib
---
 xfdashboard/application-database.c |   24 +++++++++++++++---------
 1 file changed, 15 insertions(+), 9 deletions(-)

diff --git a/xfdashboard/application-database.c 
b/xfdashboard/application-database.c
index 4411600..1dfcc17 100644
--- a/xfdashboard/application-database.c
+++ b/xfdashboard/application-database.c
@@ -881,12 +881,6 @@ static gboolean 
_xfdashboard_application_database_load_applications_recursive(Xf
 
        if(error)
        {
-               g_debug("Failed to iterate path '%s' with info=%s@%p and 
error=@%p",
-                               path,
-                               info ? G_OBJECT_TYPE_NAME(info) : "<nil>",
-                               info,
-                               error);
-
                /* Propagate error */
                g_propagate_error(outError, error);
 
@@ -924,6 +918,13 @@ static gboolean 
_xfdashboard_application_database_load_applications_recursive(Xf
        monitorData->monitor=g_file_monitor(inCurrentPath, G_FILE_MONITOR_NONE, 
NULL, &error);
        if(!monitorData->monitor && error)
        {
+#if defined(__unix__)
+               /* Workaround for FreeBSD with Glib bug (file/directory 
monitors cannot be created */
+               g_warning("[workaround for FreeBSD] Cannot initialize file 
monitor for path '%s' - will not detect changes", path);
+
+               /* Clear error as this error will not fail at FreeBSD */
+               g_clear_error(&error);
+#else
                g_debug("Failed to initialize file monitor for path '%s'", 
path);
 
                /* Propagate error */
@@ -931,23 +932,28 @@ static gboolean 
_xfdashboard_application_database_load_applications_recursive(Xf
 
                /* Release allocated resources */
                if(monitorData) 
_xfdashboard_application_database_monitor_data_free(monitorData);
+
                if(path) g_free(path);
                if(topLevelPath) g_free(topLevelPath);
                if(enumerator) g_object_unref(enumerator);
 
                return(FALSE);
+#endif
        }
 
-       if(monitorData->monitor)
+       /* If file monitor could be created, add it to list of file monitors 
... */
+       if(monitorData && monitorData->monitor)
        {
                *ioFileMonitors=g_list_prepend(*ioFileMonitors, monitorData);
 
                g_debug("Added file monitor for path '%s'", path);
        }
+               /* ... otherwise free file monitor data */
                else
                {
-                       g_warning(_("Could not create file monitor for path 
'%s' so no changes will be detected"),
-                                               path);
+                       if(monitorData) 
_xfdashboard_application_database_monitor_data_free(monitorData);
+
+                       g_debug("Destroying file monitor for path '%s'", path);
                }
 
        g_debug("Finished scanning directory '%s' for search path '%s'",

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.
_______________________________________________
Xfce4-commits mailing list
Xfce4-commits@xfce.org
https://mail.xfce.org/mailman/listinfo/xfce4-commits

Reply via email to