From b0037932364539db1cdbc9b2438716d86319c28f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89rico=20Rolim?= Date: Sun, 27 Sep 2020 16:57:39 -0300 Subject: [PATCH] Fix big-endian code in tsio_wav.cpp. Get the address the C++-managed pointers properly. This commit fixes code that was previously refactored. --- toonz/sources/sound/wav/tsio_wav.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/toonz/sources/sound/wav/tsio_wav.cpp b/toonz/sources/sound/wav/tsio_wav.cpp index f70e063d..996383c1 100644 --- a/toonz/sources/sound/wav/tsio_wav.cpp +++ b/toonz/sources/sound/wav/tsio_wav.cpp @@ -395,17 +395,17 @@ bool TSoundTrackWriterWav::save(const TSoundTrackP &sndtrack) { #if (!TNZ_LITTLE_ENDIAN) { if (fmtChunk.m_bitPerSample == 8) - memcpy((void *)waveData, (void *)sndtrack->getRawData(), soundDataLength); + memcpy((void *)waveData.get(), (void *)sndtrack->getRawData(), soundDataLength); else if (fmtChunk.m_bitPerSample == 16) { - swapAndCopySamples((short *)sndtrack->getRawData(), (short *)waveData, + swapAndCopySamples((short *)sndtrack->getRawData(), (short *)waveData.get(), sndtrack->getSampleCount() * fmtChunk.m_chans); } else if (fmtChunk.m_bitPerSample == 24) { // swap e togliere quarto byte UCHAR *begin = (UCHAR *)sndtrack->getRawData(); for (int i = 0; i < (int)sndtrack->getSampleCount() * fmtChunk.m_chans; ++i) { - *(waveData + 3 * i) = *(begin + 4 * i + 3); - *(waveData + 3 * i + 1) = *(begin + 4 * i + 2); - *(waveData + 3 * i + 2) = *(begin + 4 * i + 1); + *(waveData.get() + 3 * i) = *(begin + 4 * i + 3); + *(waveData.get() + 3 * i + 1) = *(begin + 4 * i + 2); + *(waveData.get() + 3 * i + 2) = *(begin + 4 * i + 1); } } }