From 2fa593a6f7d0dcf4a638180da1afd6d10afc3ac5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6rg=20M=C3=BCller?= Date: Mon, 16 Mar 2015 23:02:04 +1300 Subject: Fix T43853: Audio animation bug (fcurves) For a detailed bug explanation see the comments in the report. --- intern/audaspace/intern/AUD_AnimateableProperty.cpp | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) (limited to 'intern/audaspace') diff --git a/intern/audaspace/intern/AUD_AnimateableProperty.cpp b/intern/audaspace/intern/AUD_AnimateableProperty.cpp index 9f399a0b99f..e0bc18ea520 100644 --- a/intern/audaspace/intern/AUD_AnimateableProperty.cpp +++ b/intern/audaspace/intern/AUD_AnimateableProperty.cpp @@ -119,13 +119,11 @@ void AUD_AnimateableProperty::write(const float* data, int position, int count) { m_unknown.push_back(Unknown(pos, position - 1)); + // if the buffer was not animated before, we copy the previous static value if(pos == 0) - { - for(int i = 0; i < position; i++) - memcpy(buf + i * m_count, data, m_count * sizeof(float)); - } - else - updateUnknownCache(pos, position - 1); + pos = 1; + + updateUnknownCache(pos, position - 1); } // otherwise it's not at the end, let's check if some unknown part got filled else -- cgit v1.2.3