[gtk+] Use GSlice for GtkRequisition



commit eaab96c066b550445df1883b2fe8728d61f42b99
Author: Javier Jardón <jjardon gnome org>
Date:   Tue May 4 05:27:50 2010 +0200

    Use GSlice for GtkRequisition
    
    Also add gtk_requisition_new to avoid memory allocator confusions when
    using GtkRequisitions.
    
    Based on a Christian Persch patch.
    Fixes https://bugzilla.gnome.org/show_bug.cgi?id=461618

 docs/reference/gtk/gtk3-sections.txt |    1 +
 gtk/gtk.symbols                      |    1 +
 gtk/gtkwidget.c                      |   20 ++++++++++++++++++--
 gtk/gtkwidget.h                      |    1 +
 4 files changed, 21 insertions(+), 2 deletions(-)
---
diff --git a/docs/reference/gtk/gtk3-sections.txt b/docs/reference/gtk/gtk3-sections.txt
index ffce376..ce77892 100644
--- a/docs/reference/gtk/gtk3-sections.txt
+++ b/docs/reference/gtk/gtk3-sections.txt
@@ -4942,6 +4942,7 @@ gtk_widget_get_requisition
 gtk_widget_device_is_shadowed
 
 <SUBSECTION>
+gtk_requisition_new
 gtk_requisition_copy
 gtk_requisition_free
 
diff --git a/gtk/gtk.symbols b/gtk/gtk.symbols
index b5125d0..fe70e5c 100644
--- a/gtk/gtk.symbols
+++ b/gtk/gtk.symbols
@@ -4312,6 +4312,7 @@ gtk_vseparator_new
 gtk_requisition_copy
 gtk_requisition_free
 gtk_requisition_get_type G_GNUC_CONST
+gtk_requisition_new G_GNUC_MALLOC
 gtk_widget_activate
 gtk_widget_is_composited
 gtk_widget_add_accelerator
diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c
index a7d391b..a4141af 100644
--- a/gtk/gtkwidget.c
+++ b/gtk/gtkwidget.c
@@ -10241,6 +10241,22 @@ gtk_widget_class_path (GtkWidget *widget,
 }
 
 /**
+ * gtk_requisition_new:
+ *
+ * Allocates a new #GtkRequisition structure and initializes its elements to zero.
+ *
+ * Returns: a new empty #GtkRequisition. The newly allocated #GtkRequisition should
+ *   be freed with gtk_requisition_free().
+ *
+ * Since: 3.0
+ */
+GtkRequisition *
+gtk_requisition_new (void)
+{
+  return g_slice_new0 (GtkRequisition);
+}
+
+/**
  * gtk_requisition_copy:
  * @requisition: a #GtkRequisition
  *
@@ -10251,7 +10267,7 @@ gtk_widget_class_path (GtkWidget *widget,
 GtkRequisition *
 gtk_requisition_copy (const GtkRequisition *requisition)
 {
-  return (GtkRequisition *)g_memdup (requisition, sizeof (GtkRequisition));
+  return g_slice_dup (GtkRequisition, requisition);
 }
 
 /**
@@ -10263,7 +10279,7 @@ gtk_requisition_copy (const GtkRequisition *requisition)
 void
 gtk_requisition_free (GtkRequisition *requisition)
 {
-  g_free (requisition);
+  g_slice_free (GtkRequisition, requisition);
 }
 
 GType
diff --git a/gtk/gtkwidget.h b/gtk/gtkwidget.h
index 15ec198..0bae2c6 100644
--- a/gtk/gtkwidget.h
+++ b/gtk/gtkwidget.h
@@ -954,6 +954,7 @@ void       gtk_widget_set_has_tooltip       (GtkWidget   *widget,
 gboolean   gtk_widget_get_has_tooltip       (GtkWidget   *widget);
 
 GType           gtk_requisition_get_type (void) G_GNUC_CONST;
+GtkRequisition *gtk_requisition_new      (void) G_GNUC_MALLOC;
 GtkRequisition *gtk_requisition_copy     (const GtkRequisition *requisition);
 void            gtk_requisition_free     (GtkRequisition       *requisition);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]