[gnome-builder] code-index: avoid indexing on un-prepared pipelines
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] code-index: avoid indexing on un-prepared pipelines
- Date: Thu, 14 Mar 2019 17:16:34 +0000 (UTC)
commit 3e15ee9ee40541d86982e024c6edc266667d759e
Author: Christian Hergert <chergert redhat com>
Date: Thu Mar 14 10:13:49 2019 -0700
code-index: avoid indexing on un-prepared pipelines
If the current build pipeline has not configured, or we don't
have a project, refuse to begin indexing the project.
This fixes a warning about builddir from the pipeline when it
races to be setup. Also, it reduced the chances we do indexing
immediately at startup for un-prepared build systems.
src/plugins/code-index/gbp-code-index-service.c | 17 +++++++++++++----
1 file changed, 13 insertions(+), 4 deletions(-)
---
diff --git a/src/plugins/code-index/gbp-code-index-service.c b/src/plugins/code-index/gbp-code-index-service.c
index f419325c7..6cb14f3f1 100644
--- a/src/plugins/code-index/gbp-code-index-service.c
+++ b/src/plugins/code-index/gbp-code-index-service.c
@@ -238,6 +238,9 @@ static gboolean
gbp_code_index_service_queue_index_cb (gpointer user_data)
{
GbpCodeIndexService *self = user_data;
+ g_autoptr(IdeContext) context = NULL;
+ IdeBuildManager *build_manager;
+ IdePipeline *pipeline;
IDE_ENTRY;
@@ -250,10 +253,16 @@ gbp_code_index_service_queue_index_cb (gpointer user_data)
g_clear_object (&self->cancellable);
self->cancellable = g_cancellable_new ();
- gbp_code_index_service_index_async (self,
- self->cancellable,
- gbp_code_index_service_index_cb,
- NULL);
+ if (!ide_object_in_destruction (IDE_OBJECT (self)) &&
+ (context = ide_object_ref_context (IDE_OBJECT (self))) &&
+ ide_context_has_project (context) &&
+ (build_manager = ide_build_manager_from_context (context)) &&
+ (pipeline = ide_build_manager_get_pipeline (build_manager)) &&
+ ide_pipeline_has_configured (pipeline))
+ gbp_code_index_service_index_async (self,
+ self->cancellable,
+ gbp_code_index_service_index_cb,
+ NULL);
IDE_RETURN (G_SOURCE_REMOVE);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]