[gnome-builder] context: add helper to keep context loaded during object lifetime
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] context: add helper to keep context loaded during object lifetime
- Date: Thu, 14 Jan 2016 01:25:10 +0000 (UTC)
commit 0321c23cc36bcb7ece3eb87c73eb20ddd8b0e32b
Author: Christian Hergert <chergert redhat com>
Date: Wed Jan 13 17:23:48 2016 -0800
context: add helper to keep context loaded during object lifetime
This is a simple helper to keep an IdeContext loaded during the
lifetime of an object. Typical usecase might be to attach it to
a GTask.
task = g_task_new (self, cancellable, callback, user_data);
ide_context_hold_for_object (context, task);
libide/ide-context.c | 18 ++++++++++++++++++
libide/ide-context.h | 2 ++
2 files changed, 20 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-context.c b/libide/ide-context.c
index a5a9c97..9ff39dc 100644
--- a/libide/ide-context.c
+++ b/libide/ide-context.c
@@ -1876,6 +1876,24 @@ ide_context_hold (IdeContext *self)
}
/**
+ * ide_context_hold_for_object:
+ * @self: An #IdeContext
+ * @instance: (type GObject.Object): A #GObject instance
+ *
+ * Adds a hold on @self for the lifetime of @instance.
+ */
+void
+ide_context_hold_for_object (IdeContext *self,
+ gpointer instance)
+{
+ g_return_if_fail (IDE_IS_CONTEXT (self));
+ g_return_if_fail (G_IS_OBJECT (instance));
+
+ ide_context_hold (self);
+ g_object_set_data_full (instance, "IDE_CONTEXT", self, (GDestroyNotify)ide_context_release);
+}
+
+/**
* ide_context_release:
* @self: the #IdeContext
*
diff --git a/libide/ide-context.h b/libide/ide-context.h
index 91cec6a..ef249ee 100644
--- a/libide/ide-context.h
+++ b/libide/ide-context.h
@@ -71,6 +71,8 @@ gboolean ide_context_restore_finish (IdeContext
GAsyncResult *result,
GError **error);
void ide_context_hold (IdeContext *self);
+void ide_context_hold_for_object (IdeContext *self,
+ gpointer instance);
void ide_context_release (IdeContext *self);
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]