aaudio: align AAudioServiceMessage for 32/64 bits
Chromebook sometimes runs 32 and 64-bit code together.
That caused messages between the code to be rejected because the
struct sizes did not match.
So we used alignas(8) to force members to 8 byte boundaries.
Bug: 155901581
Test: Launch OboeTester
Test: Tap TEST OUTPUT
Test: Tap OPEN and START
Test: You should get "MMAP YES" if MMAP is supported by the device.
Change-Id: I0cd6a59a974888ef17b06b38fa78f032d602cd57
diff --git a/media/libaaudio/src/binding/AAudioServiceMessage.h b/media/libaaudio/src/binding/AAudioServiceMessage.h
index 3981454..62927a0 100644
--- a/media/libaaudio/src/binding/AAudioServiceMessage.h
+++ b/media/libaaudio/src/binding/AAudioServiceMessage.h
@@ -44,6 +44,8 @@
struct AAudioMessageEvent {
aaudio_service_event_t event;
union {
+ // Align so that 32 and 64-bit code can exchange messages through shared memory.
+ alignas(8)
double dataDouble;
int64_t dataLong;
};
@@ -57,8 +59,10 @@
EVENT,
};
- code what;
+ code what;
union {
+ // Align so that 32 and 64-bit code can exchange messages through shared memory.
+ alignas(8)
AAudioMessageTimestamp timestamp; // what == TIMESTAMP
AAudioMessageEvent event; // what == EVENT
};