Don't assume that get_preferred_* arguments can't be NULL

Fixes a crash introduced by f5f5aac5c0
This commit is contained in:
William Jon McCann 2010-11-20 13:30:52 -05:00
parent aac24399f8
commit e3367c92f0
4 changed files with 49 additions and 8 deletions

View file

@ -131,7 +131,11 @@ cc_panel_get_preferred_width (GtkWidget *widget,
GtkBin *bin = GTK_BIN (widget); GtkBin *bin = GTK_BIN (widget);
GtkWidget *child; GtkWidget *child;
*minimum = *natural = 0; if (minimum != NULL)
*minimum = 0;
if (natural != NULL)
*natural = 0;
if ((child = gtk_bin_get_child (bin))) if ((child = gtk_bin_get_child (bin)))
gtk_widget_get_preferred_width (child, minimum, natural); gtk_widget_get_preferred_width (child, minimum, natural);
@ -145,7 +149,11 @@ cc_panel_get_preferred_height (GtkWidget *widget,
GtkBin *bin = GTK_BIN (widget); GtkBin *bin = GTK_BIN (widget);
GtkWidget *child; GtkWidget *child;
*minimum = *natural = 0; if (minimum != NULL)
*minimum = 0;
if (natural != NULL)
*natural = 0;
if ((child = gtk_bin_get_child (bin))) if ((child = gtk_bin_get_child (bin)))
gtk_widget_get_preferred_height (child, minimum, natural); gtk_widget_get_preferred_height (child, minimum, natural);

View file

@ -194,9 +194,15 @@ cc_timezone_map_get_preferred_width (GtkWidget *widget,
gint *natural) gint *natural)
{ {
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv; CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv;
gint size;
size = gdk_pixbuf_get_width (priv->orig_background) * 0.6;
/* FIXME: should natural == full pixmap size ? */ /* FIXME: should natural == full pixmap size ? */
*minimum = *natural = gdk_pixbuf_get_width (priv->orig_background) * 0.6; if (minimum != NULL)
*minimum = size;
if (natural != NULL)
*natural = size;
} }
static void static void
@ -205,10 +211,17 @@ cc_timezone_map_get_preferred_height (GtkWidget *widget,
gint *natural) gint *natural)
{ {
CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv; CcTimezoneMapPrivate *priv = CC_TIMEZONE_MAP (widget)->priv;
gint size;
/* FIXME: should natural == full pixmap size ? */ /* FIXME: should natural == full pixmap size ? */
*minimum = *natural = gdk_pixbuf_get_height (priv->orig_background) * 0.6; size = gdk_pixbuf_get_height (priv->orig_background) * 0.6;
if (minimum != NULL)
*minimum = size;
if (natural != NULL)
*natural = size;
} }
static void static void
cc_timezone_map_size_allocate (GtkWidget *widget, cc_timezone_map_size_allocate (GtkWidget *widget,
GtkAllocation *allocation) GtkAllocation *allocation)

View file

@ -955,7 +955,12 @@ foo_scroll_area_get_preferred_width (GtkWidget *widget,
{ {
FooScrollArea *scroll_area = FOO_SCROLL_AREA (widget); FooScrollArea *scroll_area = FOO_SCROLL_AREA (widget);
*minimum = *natural = scroll_area->priv->min_width; if (minimum != NULL) {
*minimum = scroll_area->priv->min_width;
}
if (natural != NULL) {
*natural = scroll_area->priv->min_width;
}
} }
static void static void
@ -965,7 +970,12 @@ foo_scroll_area_get_preferred_height (GtkWidget *widget,
{ {
FooScrollArea *scroll_area = FOO_SCROLL_AREA (widget); FooScrollArea *scroll_area = FOO_SCROLL_AREA (widget);
*minimum = *natural = scroll_area->priv->min_height; if (minimum != NULL) {
*minimum = scroll_area->priv->min_height;
}
if (natural != NULL) {
*natural = scroll_area->priv->min_height;
}
} }
static void static void

View file

@ -463,7 +463,12 @@ gvc_level_bar_get_preferred_width (GtkWidget *widget,
gvc_level_bar_size_request (widget, &requisition); gvc_level_bar_size_request (widget, &requisition);
*minimum = *natural = requisition.width; if (minimum != NULL) {
*minimum = requisition.width;
}
if (natural != NULL) {
*natural = requisition.width;
}
} }
static void static void
@ -475,7 +480,12 @@ gvc_level_bar_get_preferred_height (GtkWidget *widget,
gvc_level_bar_size_request (widget, &requisition); gvc_level_bar_size_request (widget, &requisition);
*minimum = *natural = requisition.height; if (minimum != NULL) {
*minimum = requisition.height;
}
if (natural != NULL) {
*natural = requisition.height;
}
} }
static void static void