diff --git a/gtk/gtksizerequestcache.c b/gtk/gtksizerequestcache.c index 38345202da..0837620ac1 100644 --- a/gtk/gtksizerequestcache.c +++ b/gtk/gtksizerequestcache.c @@ -72,18 +72,9 @@ _gtk_size_request_cache_commit (SizeRequestCache *cache, /* First handle caching of the base requests */ if (for_size < 0) { - if (orientation == GTK_ORIENTATION_HORIZONTAL) - { - cache->cached_width.minimum_size = minimum_size; - cache->cached_width.natural_size = natural_size; - cache->cached_base_width = TRUE; - } - else - { - cache->cached_height.minimum_size = minimum_size; - cache->cached_height.natural_size = natural_size; - cache->cached_base_height = TRUE; - } + cache->cached_size[orientation].minimum_size = minimum_size; + cache->cached_size[orientation].natural_size = natural_size; + cache->flags[orientation].cached_size_valid = TRUE; return; } @@ -182,16 +173,8 @@ _gtk_size_request_cache_lookup (SizeRequestCache *cache, if (for_size < 0) { - if (orientation == GTK_ORIENTATION_HORIZONTAL) - { - if (cache->cached_base_width) - result = &cache->cached_width; - } - else - { - if (cache->cached_base_height) - result = &cache->cached_height; - } + if (cache->flags[orientation].cached_size_valid) + result = &cache->cached_size[orientation]; } else { diff --git a/gtk/gtksizerequestcacheprivate.h b/gtk/gtksizerequestcacheprivate.h index 7c293d9135..4ea05c3f7e 100644 --- a/gtk/gtksizerequestcacheprivate.h +++ b/gtk/gtksizerequestcacheprivate.h @@ -54,8 +54,7 @@ typedef struct { SizeRequest **widths; SizeRequest **heights; - CachedSize cached_width; - CachedSize cached_height; + CachedSize cached_size[2]; GtkSizeRequestMode request_mode: 3; guint request_mode_valid : 1; @@ -63,8 +62,9 @@ typedef struct { guint cached_heights : 3; guint last_cached_width : 3; guint last_cached_height : 3; - guint cached_base_width : 1; - guint cached_base_height : 1; + struct { + guint cached_size_valid : 1; + } flags[2]; } SizeRequestCache; void _gtk_size_request_cache_init (SizeRequestCache *cache);