summaryrefslogtreecommitdiff
path: root/gtk/gtkmenuitem.c
diff options
context:
space:
mode:
authorMatthias Clasen <matthiasc@src.gnome.org>2008-05-25 22:33:34 +0000
committerMatthias Clasen <matthiasc@src.gnome.org>2008-05-25 22:33:34 +0000
commitb0ea8e9f85347f2d636c12749f9f3f278ed9ac24 (patch)
tree5fac8ff552bb796cca97ba9af498a7f45bf40718 /gtk/gtkmenuitem.c
parent64d2764a04db34ed5d4f344cb9310627650d0e17 (diff)
downloadgtk+-b0ea8e9f85347f2d636c12749f9f3f278ed9ac24.tar.gz
Bug 501730 – use GSlice for small allocs
* gtk/gtkmenuitem.c: * gtk/gtkmenu.c: Use the slice allocator for small allocations. Patch by Christian Persch. svn path=/trunk/; revision=20161
Diffstat (limited to 'gtk/gtkmenuitem.c')
-rw-r--r--gtk/gtkmenuitem.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/gtk/gtkmenuitem.c b/gtk/gtkmenuitem.c
index c7f00ff565..050ff93253 100644
--- a/gtk/gtkmenuitem.c
+++ b/gtk/gtkmenuitem.c
@@ -1077,6 +1077,12 @@ gtk_real_menu_item_toggle_size_allocate (GtkMenuItem *menu_item,
}
static void
+free_timeval (GTimeVal *val)
+{
+ g_slice_free (GTimeVal, val);
+}
+
+static void
gtk_menu_item_real_popup_submenu (GtkWidget *widget,
gboolean remember_exact_time)
{
@@ -1092,13 +1098,13 @@ gtk_menu_item_real_popup_submenu (GtkWidget *widget,
if (remember_exact_time)
{
- GTimeVal *popup_time = g_new0 (GTimeVal, 1);
+ GTimeVal *popup_time = g_slice_new0 (GTimeVal);
g_get_current_time (popup_time);
g_object_set_data_full (G_OBJECT (menu_item->submenu),
"gtk-menu-exact-popup-time", popup_time,
- (GDestroyNotify) g_free);
+ (GDestroyNotify) free_timeval);
}
else
{
@@ -1603,6 +1609,7 @@ gtk_menu_item_set_accel_path (GtkMenuItem *menu_item,
const gchar *accel_path)
{
GtkWidget *widget;
+ gchar *old_accel_path;
g_return_if_fail (GTK_IS_MENU_ITEM (menu_item));
g_return_if_fail (accel_path == NULL ||
@@ -1611,8 +1618,9 @@ gtk_menu_item_set_accel_path (GtkMenuItem *menu_item,
widget = GTK_WIDGET (menu_item);
/* store new path */
- g_free (menu_item->accel_path);
+ old_accel_path = menu_item->accel_path;
menu_item->accel_path = g_strdup (accel_path);
+ g_free (old_accel_path);
/* forget accelerators associated with old path */
gtk_widget_set_accel_path (widget, NULL, NULL);