RemoteVstPlugin: use std::vector rather than std::list

For some reason, building remote_vst_plugin.cpp with recent
wineg++/gcc-multilib on 64 bit platforms causes undefined symbols:

remote_vst_plugin-JzpHs6.o: In function `std::list<VstMidiEvent, std::allocator<VstMidiEvent> >::_M_insert(std::_List_iterator<VstMidiEvent>, VstMidiEvent const&)':
remote_vst_plugin.cpp:(.text._ZNSt4listI12VstMidiEventSaIS0_EE9_M_insertESt14_List_iteratorIS0_ERKS0_[std::list<VstMidiEvent, std::allocator<VstMidiEvent> >::_M_insert(std::_List_iterator<VstMidiEvent>, VstMidiEvent const&)]+0x35): undefined reference to `std::_List_node_base::hook(std::_List_node_base*)'

Replacing std::list with std::vector for queueing MIDI events seems to
fix this issue. Consider this as a workaround rather than constructive fix.
(cherry picked from commit c0ff1aa95c)
This commit is contained in:
Tobias Doerffel
2009-04-07 12:37:17 +02:00
parent 2e1c7ce8a2
commit 315cd1936d

View File

@@ -59,7 +59,7 @@
#endif
#include <list>
#include <vector>
#include <string>
@@ -239,7 +239,7 @@ private:
float * * m_inputs;
float * * m_outputs;
std::list<VstMidiEvent> m_midiEvents;
std::vector<VstMidiEvent> m_midiEvents;
bpm_t m_bpm;
double m_currentSamplePos;
@@ -610,7 +610,7 @@ void remoteVstPlugin::process( const sampleFrame * _in, sampleFrame * _out )
events->reserved = 0;
events->numEvents = m_midiEvents.size();
int idx = 0;
for( std::list<VstMidiEvent>::iterator it =
for( std::vector<VstMidiEvent>::iterator it =
m_midiEvents.begin();
it != m_midiEvents.end(); ++it, ++idx )
{