[gimp] app: add comment about why we can't use GimpContainerView API in init()
- From: Michael Natterer <mitch src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gimp] app: add comment about why we can't use GimpContainerView API in init()
- Date: Thu, 24 Jun 2010 16:39:33 +0000 (UTC)
commit 403908829a4af34584d04c8c972f861819e0baa5
Author: Michael Natterer <mitch gimp org>
Date: Thu Jun 24 12:50:56 2010 +0200
app: add comment about why we can't use GimpContainerView API in init()
app/widgets/gimpcontainerbox.c | 12 ++++++++++++
1 files changed, 12 insertions(+), 0 deletions(-)
---
diff --git a/app/widgets/gimpcontainerbox.c b/app/widgets/gimpcontainerbox.c
index 4a520cb..685b195 100644
--- a/app/widgets/gimpcontainerbox.c
+++ b/app/widgets/gimpcontainerbox.c
@@ -105,6 +105,18 @@ gimp_container_box_constructed (GObject *object)
{
GimpContainerBox *box = GIMP_CONTAINER_BOX (object);
+ /* This is evil: the hash table of "insert_data" is created on
+ * demand when GimpContainerView API is used, using a
+ * value_free_func that is set in the interface_init functions of
+ * its implementors. Therefore, no GimpContainerView API must be
+ * called from any init() function, because the interface_init()
+ * function of a subclass that sets the right value_free_func might
+ * not have been called yet, leaving the insert_data hash table
+ * without memory management.
+ *
+ * Call GimpContainerView API from GObject::constructed() instead,
+ * which runs after everything is set up correctly.
+ */
gimp_container_view_set_dnd_widget (GIMP_CONTAINER_VIEW (box),
box->scrolled_win);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]