alignment: set alignment on structs

This uses an alternate idea for setting the structure alignments. Lets
see if this silents the ARM builder cast alignment issues.

GSlice (which is what is used for GObjects) guarantees a 2-pointer size
allocation, which means we can be ensured that the alignment is at least
8 bytes.
This commit is contained in:
Christian Hergert
2016-11-15 22:18:09 -08:00
parent 40eb9a2c4e
commit 63579451b5
4 changed files with 8 additions and 4 deletions

View File

@ -34,7 +34,7 @@ struct _SpVisualizerTicks
gint64 epoch;
gint64 begin_time;
gint64 end_time;
} __attribute__((aligned(8)));
};
enum {
TICK_MINUTES,

View File

@ -25,6 +25,8 @@ G_BEGIN_DECLS
#define SP_TYPE_VISUALIZER_TICKS (sp_visualizer_ticks_get_type())
typedef struct _SpVisualizerTicks SpVisualizerTicks __attribute__((aligned(8)));
G_DECLARE_FINAL_TYPE (SpVisualizerTicks, sp_visualizer_ticks, SP, VISUALIZER_TICKS, GtkDrawingArea)
GtkWidget *sp_visualizer_ticks_new (void);

View File

@ -32,7 +32,7 @@ struct _SpZoomManager
gdouble min_zoom;
gdouble max_zoom;
gdouble zoom;
} __attribute__((aligned(8)));
};
enum {
PROP_0,
@ -108,7 +108,7 @@ sp_zoom_manager_get_property (GObject *object,
GValue *value,
GParamSpec *pspec)
{
SpZoomManager *self = (SpZoomManager *)object;
SpZoomManager *self = SP_ZOOM_MANAGER (object);
switch (prop_id)
{
@ -143,7 +143,7 @@ sp_zoom_manager_set_property (GObject *object,
const GValue *value,
GParamSpec *pspec)
{
SpZoomManager *self = (SpZoomManager *)object;
SpZoomManager *self = SP_ZOOM_MANAGER (object);
switch (prop_id)
{

View File

@ -25,6 +25,8 @@ G_BEGIN_DECLS
#define SP_TYPE_ZOOM_MANAGER (sp_zoom_manager_get_type())
typedef struct _SpZoomManager SpZoomManager __attribute__((aligned(8)));
G_DECLARE_FINAL_TYPE (SpZoomManager, sp_zoom_manager, SP, ZOOM_MANAGER, GObject)
SpZoomManager *sp_zoom_manager_new (void);