Ignore if an entry cannot be read when enumerating files
authorThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Tue, 30 Sep 2008 08:03:33 +0000 (05:03 -0300)
committerThadeu Lima de Souza Cascardo <cascardo@holoscopio.com>
Tue, 30 Sep 2008 08:08:34 +0000 (05:08 -0300)
backend/gio/gio.c

index a0cb790..7f140a6 100644 (file)
@@ -73,6 +73,7 @@ gio_enumerate_entries (AtomCtx *ctx, AtomEntry ***entries, size_t *len)
   GFileEnumerator *enumerator;
   GFileInfo *info;
   GFile *file;
   GFileEnumerator *enumerator;
   GFileInfo *info;
   GFile *file;
+  AtomEntry *entry;
   GError *error;
   gchar *root;
   gchar *name;
   GError *error;
   gchar *root;
   gchar *name;
@@ -97,7 +98,15 @@ gio_enumerate_entries (AtomCtx *ctx, AtomEntry ***entries, size_t *len)
       filename = g_build_filename (root, name, NULL);
       g_object_unref (info);
       file = g_file_new_for_path (filename);
       filename = g_build_filename (root, name, NULL);
       g_object_unref (info);
       file = g_file_new_for_path (filename);
-      g_ptr_array_add (array, gio_file_to_atom (ctx, file));
+      entry = gio_file_to_atom (ctx, file);
+      if (entry)
+        {
+          g_ptr_array_add (array, entry);
+        }
+      else
+        {
+          atom_error_set (ctx, NULL);
+        }
       g_object_unref (file);
       g_free (filename);
     }
       g_object_unref (file);
       g_free (filename);
     }