Fix: align objstack on 8 bytes
authorMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 17 Sep 2014 18:56:04 +0000 (14:56 -0400)
committerMathieu Desnoyers <mathieu.desnoyers@efficios.com>
Wed, 17 Sep 2014 18:57:06 +0000 (14:57 -0400)
Architectures such as sparc32 have 32-bit pointers, but require
alignment on 8 bytes multiples for 64-bit integers.

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
formats/ctf/metadata/objstack.c

index 14d925215b4316d7511bf822135d62318aa8efbe..8087722059cd3d28cb66a7241de1ba8d7debca50 100644 (file)
@@ -29,6 +29,7 @@
 #include <babeltrace/babeltrace-internal.h>
 #include <babeltrace/align.h>
 
+#define OBJSTACK_ALIGN                 8       /* Object stack alignment */
 #define OBJSTACK_INIT_LEN              128
 #define OBJSTACK_POISON                        0xcc
 
@@ -40,7 +41,7 @@ struct objstack_node {
        struct bt_list_head node;
        size_t len;
        size_t used_len;
-       char __attribute__ ((aligned (sizeof(void *)))) data[];
+       char __attribute__ ((aligned (OBJSTACK_ALIGN))) data[];
 };
 
 BT_HIDDEN
@@ -119,7 +120,7 @@ void *objstack_alloc(struct objstack *objstack, size_t len)
        struct objstack_node *last_node;
        void *p;
 
-       len = ALIGN(len, sizeof(void *));
+       len = ALIGN(len, OBJSTACK_ALIGN);
 
        /* Get last node */
        last_node = bt_list_entry(objstack->head.prev,
This page took 0.032618 seconds and 4 git commands to generate.