Skip to content

Commit

Permalink
Initialization fix in SongConverter as indicated by valgrind
Browse files Browse the repository at this point in the history
  • Loading branch information
jackoalan committed Jun 30, 2016
1 parent d6b9d4f commit e99dbc7
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 21 deletions.
16 changes: 8 additions & 8 deletions lib/AudioGroupData.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,10 +7,10 @@ IntrusiveAudioGroupData::~IntrusiveAudioGroupData()
{
if (m_owns)
{
delete m_pool;
delete m_proj;
delete m_sdir;
delete m_samp;
delete[] m_pool;
delete[] m_proj;
delete[] m_sdir;
delete[] m_samp;
}
}

Expand All @@ -27,10 +27,10 @@ IntrusiveAudioGroupData& IntrusiveAudioGroupData::operator=(IntrusiveAudioGroupD
{
if (m_owns)
{
delete m_pool;
delete m_proj;
delete m_sdir;
delete m_samp;
delete[] m_pool;
delete[] m_proj;
delete[] m_sdir;
delete[] m_samp;
}

m_owns = other.m_owns;
Expand Down
28 changes: 15 additions & 13 deletions lib/SongConverter.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -42,8 +42,9 @@ struct PitchEvent {};
struct Event
{
bool endEvent = false;
bool controlChange = false;
bool progChange = false;
bool isNote = false;
bool isControlChange = false;
bool isProgChange = false;
uint8_t channel;
uint8_t noteOrCtrl;
uint8_t velOrVal;
Expand All @@ -54,15 +55,16 @@ struct Event
int pitchBend;

Event(NoteEvent, uint8_t chan, uint8_t note, uint8_t vel, uint16_t len)
: controlChange(false), channel(chan), noteOrCtrl(note), velOrVal(vel), length(len) {}
: isNote(true), channel(chan), noteOrCtrl(note), velOrVal(vel), length(len) {}

Event(CtrlEvent, uint8_t chan, uint8_t note, uint8_t vel, uint16_t len)
: controlChange(true), channel(chan), noteOrCtrl(note), velOrVal(vel), length(len) {}
: isControlChange(true), channel(chan), noteOrCtrl(note), velOrVal(vel), length(len) {}

Event(ProgEvent, uint8_t chan, uint8_t prog)
: progChange(true), channel(chan), program(prog) {}
: isProgChange(true), channel(chan), program(prog) {}

Event(PitchEvent, uint8_t chan, int pBend) : isPitchBend(true), channel(chan), pitchBend(pBend) {}
Event(PitchEvent, uint8_t chan, int pBend)
: isPitchBend(true), channel(chan), pitchBend(pBend) {}
};

class MIDIDecoder
Expand Down Expand Up @@ -862,7 +864,7 @@ std::vector<uint8_t> SongConverter::SongToMIDI(const unsigned char* data, Target
/* Resolve key-off events */
for (auto& pair : events)
{
if (!pair.second.controlChange)
if (pair.second.isNote)
{
auto it = allEvents.emplace(pair.first + pair.second.length, pair.second);
it->second.endEvent = true;
Expand All @@ -877,19 +879,19 @@ std::vector<uint8_t> SongConverter::SongToMIDI(const unsigned char* data, Target
encoder._sendContinuedValue(pair.first - lastTime);
lastTime = pair.first;

if (pair.second.controlChange)
if (pair.second.isControlChange)
{
encoder.controlChange(pair.second.channel, pair.second.noteOrCtrl, pair.second.velOrVal);
}
else if (pair.second.progChange)
else if (pair.second.isProgChange)
{
encoder.programChange(trk->m_midiChan, pair.second.program);
}
else if (pair.second.isPitchBend)
{
encoder.pitchBend(trk->m_midiChan, pair.second.pitchBend);
}
else
else if (pair.second.isNote)
{
if (pair.second.endEvent)
encoder.noteOff(pair.second.channel, pair.second.noteOrCtrl, pair.second.velOrVal);
Expand Down Expand Up @@ -1077,7 +1079,7 @@ std::vector<uint8_t> SongConverter::MIDIToSong(const std::vector<uint8_t>& data,
lastModVal = 0;
}

if (event.second.controlChange)
if (event.second.isControlChange)
{
if (event.second.noteOrCtrl == 1)
{
Expand Down Expand Up @@ -1114,7 +1116,7 @@ std::vector<uint8_t> SongConverter::MIDIToSong(const std::vector<uint8_t>& data,
}
}
}
else if (event.second.progChange)
else if (event.second.isProgChange)
{
if (target == Target::GCN)
{
Expand Down Expand Up @@ -1148,7 +1150,7 @@ std::vector<uint8_t> SongConverter::MIDIToSong(const std::vector<uint8_t>& data,
EncodeContinuousRLE(region.pitchBuf, newPitch - lastPitchVal);
lastPitchVal = newPitch;
}
else
else if (event.second.isNote)
{
if (target == Target::GCN)
{
Expand Down

0 comments on commit e99dbc7

Please sign in to comment.