variablespeed: Fix aliasing violation
Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Change-Id: Ic62c65b41e83f556ce228c3f724433ebace58168
diff --git a/variablespeed/jni/variablespeed.cc b/variablespeed/jni/variablespeed.cc
index 73ac609..9a15bcf 100644
--- a/variablespeed/jni/variablespeed.cc
+++ b/variablespeed/jni/variablespeed.cc
@@ -242,11 +242,13 @@
if (value) {
OpenSL(decoderMetadata, GetValue, i, valueSize, value);
if (strcmp((char*) keyInfo->data, ANDROID_KEY_PCMFORMAT_SAMPLERATE) == 0) {
- SLuint32 sampleRate = *(reinterpret_cast<SLuint32*>(value->data));
+ SLuint32 sampleRate;
+ memcpy(&sampleRate, value->data, sizeof(SLuint32));
LOGD("sample Rate: %d", sampleRate);
*sampleRateOut = sampleRate;
} else if (strcmp((char*) keyInfo->data, ANDROID_KEY_PCMFORMAT_NUMCHANNELS) == 0) {
- SLuint32 channels = *(reinterpret_cast<SLuint32*>(value->data));
+ SLuint32 channels;
+ memcpy(&channels, value->data, sizeof(SLuint32));
LOGD("channels: %d", channels);
*channelsOut = channels;
}