summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-07-24 22:57:34 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-07-25 11:57:37 -0400
commit2ff3e3d1e4319bda2d0847a06bf0ec2a27c7e4ae (patch)
tree3e7ef9b85833dc0b1bee9409a784d56d1a7ff965
parent73f4f518b88fa9145fc9ef71629d375aa1e702f0 (diff)
downloadgtk+-2ff3e3d1e4319bda2d0847a06bf0ec2a27c7e4ae.tar.gz
gtk: Improve struct packing in places
Plug some holes in our structs by rearranging a few fields. This is was done looking at pahole output.
-rw-r--r--gtk/gskpango.h4
-rw-r--r--gtk/gtkadjustment.c2
-rw-r--r--gtk/gtkapplicationwindow.c3
-rw-r--r--gtk/gtkcolumnview.c12
-rw-r--r--gtk/gtkcsstransition.c2
-rw-r--r--gtk/gtkeventcontrollerkey.c4
-rw-r--r--gtk/gtkfontbutton.c6
-rw-r--r--gtk/gtkgridview.c2
-rw-r--r--gtk/gtkprogresstrackerprivate.h2
-rw-r--r--gtk/gtkrange.c4
-rw-r--r--gtk/gtkscale.c8
-rw-r--r--gtk/gtkswitch.c3
-rw-r--r--gtk/gtktextlayoutprivate.h4
-rw-r--r--gtk/gtktexttagprivate.h8
-rw-r--r--gtk/gtkwidgetpaintable.c3
-rw-r--r--gtk/gtkwidgetprivate.h14
16 files changed, 42 insertions, 39 deletions
diff --git a/gtk/gskpango.h b/gtk/gskpango.h
index bbd3699f43..ab0933933c 100644
--- a/gtk/gskpango.h
+++ b/gtk/gskpango.h
@@ -65,10 +65,10 @@ struct _GskPangoRenderer
GdkRGBA *error_color;
GskPangoRendererState state;
- GskPangoShapeHandler shape_handler;
- /* house-keeping options */
guint is_cached_renderer : 1;
+
+ GskPangoShapeHandler shape_handler;
};
struct _GskPangoRendererClass
diff --git a/gtk/gtkadjustment.c b/gtk/gtkadjustment.c
index d4bf1ca8a1..1e6af5a599 100644
--- a/gtk/gtkadjustment.c
+++ b/gtk/gtkadjustment.c
@@ -57,9 +57,9 @@ struct _GtkAdjustmentPrivate {
double target;
guint duration;
+ guint tick_id;
gint64 start_time;
gint64 end_time;
- guint tick_id;
GdkFrameClock *clock;
};
typedef struct _GtkAdjustmentPrivate GtkAdjustmentPrivate;
diff --git a/gtk/gtkapplicationwindow.c b/gtk/gtkapplicationwindow.c
index eff8257e62..54e393edd3 100644
--- a/gtk/gtkapplicationwindow.c
+++ b/gtk/gtkapplicationwindow.c
@@ -190,10 +190,9 @@ struct _GtkApplicationWindowPrivate
GtkWidget *menubar;
gboolean show_menubar;
+ guint id;
GMenu *menubar_section;
- guint id;
-
GtkShortcutsWindow *help_overlay;
};
diff --git a/gtk/gtkcolumnview.c b/gtk/gtkcolumnview.c
index b7a5b1bbe1..6ad2580c25 100644
--- a/gtk/gtkcolumnview.c
+++ b/gtk/gtkcolumnview.c
@@ -118,21 +118,21 @@ struct _GtkColumnView
GtkAdjustment *hadjustment;
- gboolean reorderable;
- gboolean show_column_separators;
+ guint reorderable : 1;
+ guint show_column_separators : 1;
+ guint in_column_resize : 1;
+ guint in_column_reorder : 1;
- gboolean in_column_resize;
- gboolean in_column_reorder;
int drag_pos;
int drag_x;
int drag_offset;
int drag_column_x;
- GtkGesture *drag_gesture;
-
guint autoscroll_id;
double autoscroll_x;
double autoscroll_delta;
+
+ GtkGesture *drag_gesture;
};
struct _GtkColumnViewClass
diff --git a/gtk/gtkcsstransition.c b/gtk/gtkcsstransition.c
index fee6d66d71..98ef4b2f6a 100644
--- a/gtk/gtkcsstransition.c
+++ b/gtk/gtkcsstransition.c
@@ -29,10 +29,10 @@ struct _GtkCssTransition
GtkStyleAnimation parent;
guint property;
+ guint finished;
GtkCssValue *start;
GtkCssValue *ease;
GtkProgressTracker tracker;
- guint finished;
};
diff --git a/gtk/gtkeventcontrollerkey.c b/gtk/gtkeventcontrollerkey.c
index ae7c11a8b0..e813654be8 100644
--- a/gtk/gtkeventcontrollerkey.c
+++ b/gtk/gtkeventcontrollerkey.c
@@ -49,9 +49,9 @@ struct _GtkEventControllerKey
GdkModifierType state;
- GdkEvent *current_event;
-
gboolean is_focus;
+
+ GdkEvent *current_event;
};
struct _GtkEventControllerKeyClass
diff --git a/gtk/gtkfontbutton.c b/gtk/gtkfontbutton.c
index f7002bef7c..0dcb9723d0 100644
--- a/gtk/gtkfontbutton.c
+++ b/gtk/gtkfontbutton.c
@@ -76,17 +76,19 @@ struct _GtkFontButton
guint show_preview_entry : 1;
guint modal : 1;
+ GtkFontChooserLevel level;
+
GtkWidget *button;
GtkWidget *font_dialog;
GtkWidget *font_label;
GtkWidget *size_label;
GtkWidget *font_size_box;
+ int font_size;
PangoFontDescription *font_desc;
PangoFontFamily *font_family;
PangoFontFace *font_face;
PangoFontMap *font_map;
- int font_size;
char *font_features;
PangoLanguage *language;
char *preview_text;
@@ -94,8 +96,6 @@ struct _GtkFontButton
gpointer font_filter_data;
GDestroyNotify font_filter_data_destroy;
GtkCssProvider *provider;
-
- GtkFontChooserLevel level;
};
struct _GtkFontButtonClass
diff --git a/gtk/gtkgridview.c b/gtk/gtkgridview.c
index 7138a71aab..1d243134a4 100644
--- a/gtk/gtkgridview.c
+++ b/gtk/gtkgridview.c
@@ -91,8 +91,8 @@ struct _GtkGridView
guint max_columns;
/* set in size_allocate */
guint n_columns;
- double column_width;
int unknown_row_height;
+ double column_width;
};
struct _GtkGridViewClass
diff --git a/gtk/gtkprogresstrackerprivate.h b/gtk/gtkprogresstrackerprivate.h
index 95adfe5f4d..fb635cccf9 100644
--- a/gtk/gtkprogresstrackerprivate.h
+++ b/gtk/gtkprogresstrackerprivate.h
@@ -35,11 +35,11 @@ typedef struct _GtkProgressTracker GtkProgressTracker;
struct _GtkProgressTracker
{
- gboolean is_running;
guint64 last_frame_time;
guint64 duration;
double iteration;
double iteration_count;
+ gboolean is_running;
};
void gtk_progress_tracker_init_copy (GtkProgressTracker *source,
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index cc963ed2bc..454240cfff 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -87,7 +87,7 @@ struct _GtkRangePrivate
GtkWidget *highlight_widget;
GtkWidget *slider_widget;
- GtkOrientation orientation;
+ GtkGesture *drag_gesture;
double fill_level;
double *marks;
@@ -113,7 +113,7 @@ struct _GtkRangePrivate
/* Whether dragging is ongoing */
guint in_drag : 1;
- GtkGesture *drag_gesture;
+ GtkOrientation orientation;
GtkScrollType autoscroll_mode;
guint autoscroll_id;
diff --git a/gtk/gtkscale.c b/gtk/gtkscale.c
index 5e649eeaa2..3c8056e635 100644
--- a/gtk/gtkscale.c
+++ b/gtk/gtkscale.c
@@ -149,23 +149,23 @@ struct _GtkScalePrivate
int digits;
+ guint draw_value : 1;
+ guint value_pos : 2;
+
GtkScaleFormatValueFunc format_value_func;
gpointer format_value_func_user_data;
GDestroyNotify format_value_func_destroy_notify;
-
- guint draw_value : 1;
- guint value_pos : 2;
};
struct _GtkScaleMark
{
double value;
int stop_position;
+ GtkPositionType position; /* always GTK_POS_TOP or GTK_POS_BOTTOM */
char *markup;
GtkWidget *label_widget;
GtkWidget *indicator_widget;
GtkWidget *widget;
- GtkPositionType position; /* always GTK_POS_TOP or GTK_POS_BOTTOM */
};
enum {
diff --git a/gtk/gtkswitch.c b/gtk/gtkswitch.c
index 1c3bdd27c3..040519506e 100644
--- a/gtk/gtkswitch.c
+++ b/gtk/gtkswitch.c
@@ -90,11 +90,12 @@ struct _GtkSwitch
double handle_pos;
guint tick_id;
- GtkProgressTracker tracker;
guint state : 1;
guint is_active : 1;
+ GtkProgressTracker tracker;
+
GtkWidget *on_image;
GtkWidget *off_image;
GtkWidget *slider;
diff --git a/gtk/gtktextlayoutprivate.h b/gtk/gtktextlayoutprivate.h
index 2ffab44fdd..2d563ae6ae 100644
--- a/gtk/gtktextlayoutprivate.h
+++ b/gtk/gtktextlayoutprivate.h
@@ -154,14 +154,14 @@ struct _GtkTextLayout
*/
guint keyboard_direction : 2;
+ guint overwrite_mode : 1;
+
/* The preedit string and attributes, if any */
char *preedit_string;
PangoAttrList *preedit_attrs;
int preedit_len;
int preedit_cursor;
-
- guint overwrite_mode : 1;
};
struct _GtkTextLayoutClass
diff --git a/gtk/gtktexttagprivate.h b/gtk/gtktexttagprivate.h
index 4fe63d4249..28e4e1cce7 100644
--- a/gtk/gtktexttagprivate.h
+++ b/gtk/gtktexttagprivate.h
@@ -39,10 +39,6 @@ struct _GtkTextTagPrivate
* a pointer to the key from the entry in
* tkxt->tagTable, so it needn't be freed
* explicitly. */
- int priority; /* Priority of this tag within widget. 0
- * means lowest priority. Exactly one tag
- * has each integer value between 0 and
- * numTags-1. */
/*
* Information for displaying text with this tag. The information
* belows acts as an override on information specified by lower-priority
@@ -53,6 +49,10 @@ struct _GtkTextTagPrivate
GtkTextAttributes *values;
+ int priority; /* Priority of this tag within widget. 0
+ * means lowest priority. Exactly one tag
+ * has each integer value between 0 and
+ * numTags-1. */
/* Flags for whether a given value is set; if a value is unset, then
* this tag does not affect it.
*/
diff --git a/gtk/gtkwidgetpaintable.c b/gtk/gtkwidgetpaintable.c
index 6b60c7ad28..a2d6a0cc22 100644
--- a/gtk/gtkwidgetpaintable.c
+++ b/gtk/gtkwidgetpaintable.c
@@ -60,9 +60,10 @@ struct _GtkWidgetPaintable
GtkWidget *widget;
guint snapshot_count;
+ guint pending_update_cb; /* the idle source that updates the valid image to be the new current image */
+
GdkPaintable *current_image; /* the image that we are presenting */
GdkPaintable *pending_image; /* the image that we should be presenting */
- guint pending_update_cb; /* the idle source that updates the valid image to be the new current image */
};
struct _GtkWidgetPaintableClass
diff --git a/gtk/gtkwidgetprivate.h b/gtk/gtkwidgetprivate.h
index 99a19afd98..01090956ad 100644
--- a/gtk/gtkwidgetprivate.h
+++ b/gtk/gtkwidgetprivate.h
@@ -51,10 +51,10 @@ typedef struct _GtkWidgetSurfaceTransformData
GtkWidget *tracked_parent;
guint parent_surface_transform_changed_id;
- GList *callbacks;
-
gboolean cached_surface_transform_valid;
+
graphene_matrix_t cached_surface_transform;
+ GList *callbacks;
} GtkWidgetSurfaceTransformData;
struct _GtkWidgetPrivate
@@ -105,8 +105,9 @@ struct _GtkWidgetPrivate
guint halign : 4;
guint valign : 4;
+ guint user_alpha : 8;
+
GtkOverflow overflow;
- guint8 user_alpha;
#ifdef G_ENABLE_CONSISTENCY_CHECKS
/* Number of gtk_widget_push_verify_invariants () */
@@ -115,13 +116,14 @@ struct _GtkWidgetPrivate
int width_request;
int height_request;
- void (* resize_func) (GtkWidget *);
- GtkBorder margin;
/* Animations and other things to update on clock ticks */
guint clock_tick_id;
GList *tick_callbacks;
+ void (* resize_func) (GtkWidget *);
+ GtkBorder margin;
+
/* Surface relative transform updates callbacks */
GtkWidgetSurfaceTransformData *surface_transform_data;
@@ -152,10 +154,10 @@ struct _GtkWidgetPrivate
int allocated_height;
int allocated_size_baseline;
- GskTransform *transform;
int width;
int height;
int baseline;
+ GskTransform *transform;
/* The widget's requested sizes */
SizeRequestCache requests;