zynaddsubfx

ZynAddSubFX open source synthesizer
Log | Files | Refs | Submodules | LICENSE

commit 82f19164e80c88c75dad077503140887d206ce0b
parent 7f32cc009e4b5cfec68b0997f84bbc7954b7906e
Author: fundamental <mark.d.mccurry@gmail.com>
Date:   Fri,  6 Nov 2015 22:52:44 -0500

Remove Undefined Behavior In Resonance::Paste

Diffstat:
Msrc/Synth/Resonance.cpp | 13++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/Synth/Resonance.cpp b/src/Synth/Resonance.cpp @@ -251,10 +251,21 @@ void Resonance::sendcontroller(MidiControllers ctl, float par) ctlbw = par; } +#define COPY(y) this->y = r.y void Resonance::paste(Resonance &r) { - memcpy((char*)this, (char*)&r, sizeof(r)); + COPY(Penabled); + for(int i=0; i<N_RES_POINTS; ++i) + this->Prespoints[i] = r.Prespoints[i]; + COPY(PmaxdB); + COPY(Pcenterfreq); + COPY(Poctavesfreq); + COPY(Pprotectthefundamental); + + COPY(ctlcenter); + COPY(ctlbw); } +#undef COPY void Resonance::add2XML(XMLwrapper *xml) {