[gnome-builder] code-index: try harder to drop caches after indexing
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] code-index: try harder to drop caches after indexing
- Date: Thu, 4 Jan 2018 02:20:31 +0000 (UTC)
commit bd04f32473e2a5dbc7a98830bed0812e51c27b72
Author: Christian Hergert <chergert redhat com>
Date: Wed Jan 3 18:20:18 2018 -0800
code-index: try harder to drop caches after indexing
This can hold onto IdeFile instances forever unless we drop the cache
after our work is done.
src/plugins/code-index/ide-code-index-builder.c | 14 ++++++++++++++
src/plugins/code-index/ide-code-index-builder.h | 1 +
src/plugins/code-index/ide-code-index-service.c | 6 +++++-
3 files changed, 20 insertions(+), 1 deletions(-)
---
diff --git a/src/plugins/code-index/ide-code-index-builder.c b/src/plugins/code-index/ide-code-index-builder.c
index 9bba732..437a722 100644
--- a/src/plugins/code-index/ide-code-index-builder.c
+++ b/src/plugins/code-index/ide-code-index-builder.c
@@ -861,3 +861,17 @@ ide_code_index_builder_new (IdeContext *context,
"service", service,
NULL);
}
+
+void
+ide_code_index_builder_drop_caches (IdeCodeIndexBuilder *self)
+{
+ g_return_if_fail (IDE_IS_CODE_INDEX_BUILDER (self));
+
+ /*
+ * Drop our caches so that we force the data to be regenereted
+ * upon the next request. Also helps keep IdeFile from lingering
+ * around forever.
+ */
+
+ g_hash_table_remove_all (self->build_flags);
+}
diff --git a/src/plugins/code-index/ide-code-index-builder.h b/src/plugins/code-index/ide-code-index-builder.h
index 761cc84..667d9d4 100644
--- a/src/plugins/code-index/ide-code-index-builder.h
+++ b/src/plugins/code-index/ide-code-index-builder.h
@@ -29,6 +29,7 @@ G_BEGIN_DECLS
G_DECLARE_FINAL_TYPE (IdeCodeIndexBuilder, ide_code_index_builder, IDE, CODE_INDEX_BUILDER, IdeObject)
+void ide_code_index_builder_drop_caches (IdeCodeIndexBuilder *self);
void ide_code_index_builder_build_async (IdeCodeIndexBuilder *self,
GFile *directory,
gboolean recursive,
diff --git a/src/plugins/code-index/ide-code-index-service.c b/src/plugins/code-index/ide-code-index-service.c
index 85f0830..c056a2c 100644
--- a/src/plugins/code-index/ide-code-index-service.c
+++ b/src/plugins/code-index/ide-code-index-service.c
@@ -124,6 +124,7 @@ ide_code_index_service_build_cb (GObject *object,
g_autoptr(GError) error = NULL;
g_assert (IDE_IS_CODE_INDEX_SERVICE (self));
+ g_assert (G_IS_ASYNC_RESULT (result));
g_assert (IDE_IS_CODE_INDEX_BUILDER (builder));
bdata = g_queue_pop_head (&self->build_queue);
@@ -175,7 +176,10 @@ ide_code_index_service_build_cb (GObject *object,
g_steal_pointer (&self));
}
else
- unregister_pausable (self);
+ {
+ unregister_pausable (self);
+ ide_code_index_builder_drop_caches (builder);
+ }
}
static gboolean
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]