[gnome-builder] code-index: be nicer about error messages



commit e63d1742f87646843ac33e954bca59a1d059afe5
Author: Christian Hergert <chergert redhat com>
Date:   Fri Jan 5 17:34:36 2018 -0800

    code-index: be nicer about error messages
    
    Try harder to set them, and be more lenient when something
    doesn't like the clang indexer did.

 src/plugins/clang/ide-clang-code-index-entries.c |    5 +++--
 src/plugins/clang/ide-clang-code-indexer.c       |   22 ++++++++++------------
 src/plugins/code-index/ide-code-index-builder.c  |    3 ++-
 3 files changed, 15 insertions(+), 15 deletions(-)
---
diff --git a/src/plugins/clang/ide-clang-code-index-entries.c 
b/src/plugins/clang/ide-clang-code-index-entries.c
index 2f72954..cf8dd65 100644
--- a/src/plugins/clang/ide-clang-code-index-entries.c
+++ b/src/plugins/clang/ide-clang-code-index-entries.c
@@ -299,11 +299,12 @@ static IdeCodeIndexEntry *
 ide_clang_code_index_entries_get_next_entry (IdeCodeIndexEntries *entries)
 {
   IdeClangCodeIndexEntries *self = (IdeClangCodeIndexEntries *)entries;
-  gboolean finish = FALSE;
   g_autoptr(IdeCodeIndexEntry) entry = NULL;
+  gboolean finish = FALSE;
 
-  entry = ide_clang_code_index_entries_real_get_next_entry (self, &finish);
+  g_assert (IDE_IS_CLANG_CODE_INDEX_ENTRIES (self));
 
+  entry = ide_clang_code_index_entries_real_get_next_entry (self, &finish);
   while (entry == NULL && !finish)
     entry = ide_clang_code_index_entries_real_get_next_entry (self, &finish);
 
diff --git a/src/plugins/clang/ide-clang-code-indexer.c b/src/plugins/clang/ide-clang-code-indexer.c
index 144362f..5a304b6 100644
--- a/src/plugins/clang/ide-clang-code-indexer.c
+++ b/src/plugins/clang/ide-clang-code-indexer.c
@@ -83,7 +83,6 @@ ide_clang_code_indexer_index_file (IdeCodeIndexer       *indexer,
                                    GError              **error)
 {
   IdeClangCodeIndexer *self = (IdeClangCodeIndexer *)indexer;
-  g_autoptr(GTask) task = NULL;
   g_autofree gchar *filename = NULL;
   CXTranslationUnit tu;
   guint n_args = 0;
@@ -92,8 +91,6 @@ ide_clang_code_indexer_index_file (IdeCodeIndexer       *indexer,
   g_return_val_if_fail (G_IS_FILE (file), NULL);
   g_return_val_if_fail (!cancellable || G_IS_CANCELLABLE (cancellable), NULL);
 
-  task = g_task_new (self, cancellable, NULL, NULL);
-
   filename = g_file_get_path (file);
 
   g_debug ("Indexing %s", filename);
@@ -122,17 +119,18 @@ ide_clang_code_indexer_index_file (IdeCodeIndexer       *indexer,
       /* entries has to dispose TU when done with it */
       entries = ide_clang_code_index_entries_new (tu, filename);
 
-      g_task_return_pointer (task, g_steal_pointer (&entries), g_object_unref);
-    }
-  else
-    {
-      g_task_return_new_error (task,
-                               G_IO_ERROR,
-                               G_IO_ERROR_FAILED,
-                               "Unable to create translation unit");
+      if (entries != NULL)
+        return g_steal_pointer (&entries);
+
+      clang_disposeTranslationUnit (tu);
     }
 
-  return g_task_propagate_pointer (task, error);
+  g_set_error (error,
+               G_IO_ERROR,
+               G_IO_ERROR_FAILED,
+               "Unable to create translation unit");
+
+  return NULL;
 }
 
 static void
diff --git a/src/plugins/code-index/ide-code-index-builder.c b/src/plugins/code-index/ide-code-index-builder.c
index 437a722..376653b 100644
--- a/src/plugins/code-index/ide-code-index-builder.c
+++ b/src/plugins/code-index/ide-code-index-builder.c
@@ -172,7 +172,8 @@ ide_code_index_builder_index_file (IdeCodeIndexBuilder      *self,
 
   if (entries == NULL)
     {
-      g_warning ("Failed to index file: %s", error->message);
+      if (error != NULL)
+        g_warning ("Failed to index file: %s", error->message);
       return;
     }
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]