[gnome-builder] diagnostics: port IdeDiagnosticsManager to ArcBox.
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] diagnostics: port IdeDiagnosticsManager to ArcBox.
- Date: Mon, 8 Oct 2018 06:59:59 +0000 (UTC)
commit 0a73945e1d39c3844b5748ca7f2d5842c80002f3
Author: Eduardo Grajeda <tatofoo gmail com>
Date: Sun Oct 7 17:38:37 2018 -0300
diagnostics: port IdeDiagnosticsManager to ArcBox.
src/libide/diagnostics/ide-diagnostics-manager.c | 46 +++---------------------
1 file changed, 4 insertions(+), 42 deletions(-)
---
diff --git a/src/libide/diagnostics/ide-diagnostics-manager.c
b/src/libide/diagnostics/ide-diagnostics-manager.c
index 205d17135..6fa904e94 100644
--- a/src/libide/diagnostics/ide-diagnostics-manager.c
+++ b/src/libide/diagnostics/ide-diagnostics-manager.c
@@ -40,14 +40,6 @@
typedef struct
{
- /*
- * Our reference count on the group, which is not atomic because we
- * require access to this structure to be accessed from the main thread
- * only. This is used so that providers can have access to the group even
- * after the group has been removed from the IdeDiagnosticsManager.
- */
- volatile gint ref_count;
-
/*
* Used to give ourself a modicum of assurance our structure hasn't
* been miss-used.
@@ -181,13 +173,10 @@ free_diagnostics (gpointer data)
}
static void
-ide_diagnostics_group_free (gpointer data)
+ide_diagnostics_group_free (IdeDiagnosticsGroup *group)
{
- IdeDiagnosticsGroup *group = data;
-
g_assert (IDE_IS_MAIN_THREAD ());
g_assert (group != NULL);
- g_assert (group->ref_count == 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
group->magic = 0;
@@ -196,7 +185,6 @@ ide_diagnostics_group_free (gpointer data)
g_weak_ref_clear (&group->buffer_wr);
g_clear_object (&group->adapter);
g_clear_object (&group->file);
- g_slice_free (IdeDiagnosticsGroup, group);
}
static IdeDiagnosticsGroup *
@@ -207,8 +195,7 @@ ide_diagnostics_group_new (GFile *file)
g_assert (IDE_IS_MAIN_THREAD ());
g_assert (G_IS_FILE (file));
- group = g_slice_new0 (IdeDiagnosticsGroup);
- group->ref_count = 1;
+ group = g_rc_box_new0 (IdeDiagnosticsGroup);
group->magic = DIAG_GROUP_MAGIC;
group->file = g_object_ref (file);
@@ -222,12 +209,9 @@ ide_diagnostics_group_ref (IdeDiagnosticsGroup *group)
{
g_assert (IDE_IS_MAIN_THREAD ());
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
- group->ref_count++;
-
- return group;
+ return g_rc_box_acquire (group);
}
static void
@@ -235,13 +219,9 @@ ide_diagnostics_group_unref (IdeDiagnosticsGroup *group)
{
g_assert (IDE_IS_MAIN_THREAD ());
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
- group->ref_count--;
-
- if (group->ref_count == 0)
- ide_diagnostics_group_free (group);
+ g_rc_box_release_full (group, (GDestroyNotify)ide_diagnostics_group_free);
}
static guint
@@ -249,7 +229,6 @@ ide_diagnostics_group_has_diagnostics (IdeDiagnosticsGroup *group)
{
g_assert (IDE_IS_MAIN_THREAD ());
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
if (group->diagnostics_by_provider != NULL)
@@ -278,7 +257,6 @@ ide_diagnostics_group_can_dispose (IdeDiagnosticsGroup *group)
g_assert (IDE_IS_MAIN_THREAD ());
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
/*
@@ -303,7 +281,6 @@ ide_diagnostics_group_add (IdeDiagnosticsGroup *group,
g_assert (IDE_IS_MAIN_THREAD ());
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
g_assert (IDE_IS_DIAGNOSTIC_PROVIDER (provider));
g_assert (diagnostic != NULL);
@@ -370,7 +347,6 @@ ide_diagnostics_group_diagnose_cb (GObject *object,
IDE_EXIT;
}
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
/*
@@ -470,7 +446,6 @@ ide_diagnostics_group_diagnose_foreach (IdeExtensionSetAdapter *adapter,
group = g_object_get_data (G_OBJECT (provider), "IDE_DIAGNOSTICS_GROUP");
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
group->in_diagnose++;
@@ -549,7 +524,6 @@ ide_diagnostics_manager_begin_diagnose (gpointer data)
IdeDiagnosticsGroup *group = value;
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
if (group->needs_diagnose && group->adapter != NULL && group->in_diagnose == 0)
@@ -564,7 +538,6 @@ ide_diagnostics_group_queue_diagnose (IdeDiagnosticsGroup *group,
IdeDiagnosticsManager *self)
{
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
g_assert (IDE_IS_DIAGNOSTICS_MANAGER (self));
@@ -685,7 +658,6 @@ ide_diagnostics_manager_add_diagnostic (IdeDiagnosticsManager *self,
}
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
ide_diagnostics_group_add (group, provider, diagnostic);
@@ -714,7 +686,6 @@ ide_diagnostics_manager_find_group_from_buffer (IdeDiagnosticsManager *self,
}
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
return group;
@@ -738,7 +709,6 @@ ide_diagnostics_manager_find_group_from_adapter (IdeDiagnosticsManager *self,
IdeDiagnosticsGroup *group = value;
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
if (group->adapter == adapter)
@@ -840,7 +810,6 @@ ide_diagnostics_manager_clear_by_provider (IdeDiagnosticsManager *self,
IdeDiagnosticsGroup *group = value;
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
if (group->diagnostics_by_provider != NULL)
@@ -917,7 +886,6 @@ ide_diagnostics_manager_buffer_changed (IdeDiagnosticsManager *self,
group = ide_diagnostics_manager_find_group_from_buffer (self, buffer);
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
ide_diagnostics_group_queue_diagnose (group, self);
@@ -951,7 +919,6 @@ ide_diagnostics_manager_buffer_notify_language (IdeDiagnosticsManager *self,
group = ide_diagnostics_manager_find_group_from_buffer (self, buffer);
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
if (group->adapter != NULL)
@@ -989,7 +956,6 @@ ide_diagnostics_manager_update_group_by_file (IdeDiagnosticsManager *self,
g_autoptr(IdeBuffer) group_buffer = g_weak_ref_get (&group->buffer_wr);
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
g_assert (G_IS_FILE (group->file));
@@ -1092,7 +1058,6 @@ ide_diagnostics_manager_buffer_loaded (IdeDiagnosticsManager *self,
}
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
g_weak_ref_set (&group->buffer_wr, buffer);
@@ -1162,7 +1127,6 @@ ide_diagnostics_manager_buffer_unloaded (IdeDiagnosticsManager *self,
group = ide_diagnostics_manager_find_group_from_buffer (self, buffer);
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
/*
@@ -1289,7 +1253,6 @@ ide_diagnostics_manager_get_busy (IdeDiagnosticsManager *self)
IdeDiagnosticsGroup *group = value;
g_assert (group != NULL);
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
if (group->in_diagnose > 0)
@@ -1371,7 +1334,6 @@ ide_diagnostics_manager_get_sequence_for_file (IdeDiagnosticsManager *self,
if (group != NULL)
{
- g_assert (group->ref_count > 0);
g_assert (IS_DIAGNOSTICS_GROUP (group));
g_assert (G_IS_FILE (group->file));
g_assert (g_file_equal (group->file, file));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]