diff options
author | David Robillard <d@drobilla.net> | 2015-11-14 19:22:09 -0500 |
---|---|---|
committer | David Robillard <d@drobilla.net> | 2016-09-11 14:41:18 +0200 |
commit | d1e58b25654ab25607329afacc9a23d829267637 (patch) | |
tree | 8b1f1b0f3019650211cb4815cf0ba5d25ba4127d /src/server/Buffer.cpp | |
parent | 7dd82030ec60df74db7be51a6b8b3bb4a8a9f5a3 (diff) | |
download | ingen-d1e58b25654ab25607329afacc9a23d829267637.tar.gz ingen-d1e58b25654ab25607329afacc9a23d829267637.tar.bz2 ingen-d1e58b25654ab25607329afacc9a23d829267637.zip |
Fix buffer copying for various types
Diffstat (limited to 'src/server/Buffer.cpp')
-rw-r--r-- | src/server/Buffer.cpp | 8 |
1 files changed, 3 insertions, 5 deletions
diff --git a/src/server/Buffer.cpp b/src/server/Buffer.cpp index 4fbb44f9..97f1c308 100644 --- a/src/server/Buffer.cpp +++ b/src/server/Buffer.cpp @@ -158,12 +158,10 @@ Buffer::copy(const Context& context, const Buffer* src) { if (!_buf) { return; - } else if (is_audio() && src->is_audio()) { - memcpy(_buf, src->_buf, src->_capacity); } else if (_type == src->type()) { - const LV2_Atom* src_atom = src->get<const LV2_Atom>(); - if (lv2_atom_total_size(src_atom) <= _capacity) { - memcpy(_buf, src_atom, lv2_atom_total_size(src_atom)); + const uint32_t src_size = src->size(); + if (src_size <= _capacity) { + memcpy(_buf, src->_buf, src_size); } else { clear(); } |