From 5380bcc403a255c60341ccedc562d7afec482385 Mon Sep 17 00:00:00 2001 From: Bernhard Rosenkraenzer Date: Mon, 12 Dec 2011 13:25:14 +0059 Subject: variablespeed: Fix aliasing violation Signed-off-by: Bernhard Rosenkraenzer Change-Id: Ic62c65b41e83f556ce228c3f724433ebace58168 --- variablespeed/jni/variablespeed.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/variablespeed/jni/variablespeed.cc b/variablespeed/jni/variablespeed.cc index ea134ec..bf132c6 100644 --- a/variablespeed/jni/variablespeed.cc +++ b/variablespeed/jni/variablespeed.cc @@ -242,11 +242,13 @@ static void ReadSampleRateAndChannelCount(CallbackContext *pContext, if (value) { OpenSL(decoderMetadata, GetValue, i, valueSize, value); if (strcmp((char*) keyInfo->data, ANDROID_KEY_PCMFORMAT_SAMPLERATE) == 0) { - SLuint32 sampleRate = *(reinterpret_cast(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(value->data)); + SLuint32 channels; + memcpy(&channels, value->data, sizeof(SLuint32)); LOGD("channels: %d", channels); *channelsOut = channels; } -- cgit v1.2.3