diff --git a/src/openrct2-ui/audio/FlacAudioSource.cpp b/src/openrct2-ui/audio/FlacAudioSource.cpp index 4acecfcb0b..a3e114850f 100644 --- a/src/openrct2-ui/audio/FlacAudioSource.cpp +++ b/src/openrct2-ui/audio/FlacAudioSource.cpp @@ -276,10 +276,11 @@ namespace OpenRCT2::Audio // Allocate room on decode buffer auto& decodeBuffer = self->_decodeBuffer; + auto oldSize = decodeBuffer.size(); decodeBuffer.resize(decodeBuffer.size() + frameSize); // Copy decoded data to buffer - auto dst0 = reinterpret_cast(decodeBuffer.data()); + auto dst0 = reinterpret_cast(decodeBuffer.data() + oldSize); for (int32_t i = 0; i < channels; i++) { auto* dst = dst0 + i; diff --git a/src/openrct2-ui/audio/SDLAudioSource.h b/src/openrct2-ui/audio/SDLAudioSource.h index 3aefc3aaa3..e9db2c07f8 100644 --- a/src/openrct2-ui/audio/SDLAudioSource.h +++ b/src/openrct2-ui/audio/SDLAudioSource.h @@ -18,6 +18,11 @@ namespace OpenRCT2::Audio { +#ifdef __WARN_SUGGEST_FINAL_METHODS__ +# pragma GCC diagnostic push +# pragma GCC diagnostic ignored "-Wsuggest-final-methods" +# pragma GCC diagnostic ignored "-Wsuggest-final-types" +#endif class SDLAudioSource : public IAudioSource { private: @@ -26,7 +31,7 @@ namespace OpenRCT2::Audio public: void Release() override; int32_t GetBytesPerSecond() const override; - bool IsReleased() const; + bool IsReleased() const override; std::unique_ptr ToMemory(const AudioFormat& target); virtual AudioFormat GetFormat() const = 0; @@ -34,6 +39,9 @@ namespace OpenRCT2::Audio protected: virtual void Unload() = 0; }; +#ifdef __WARN_SUGGEST_FINAL_METHODS__ +# pragma GCC diagnostic pop +#endif std::unique_ptr CreateAudioSource(SDL_RWops* rw); std::unique_ptr CreateAudioSource(SDL_RWops* rw, uint32_t cssIndex);