diff options
author | Carl Hetherington <carl@carlh.net> | 2007-10-23 14:02:15 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2007-10-23 14:02:15 +0000 |
commit | fc9ab1ccbdfc4ae8bdec962e4c9439c1fc59a55f (patch) | |
tree | 1b9436b1519761692639212ed25aca63dbd97859 | |
parent | 4d33fbac628a695b5c63f7dae1ddaad9e1a5896d (diff) |
Re-work Port construction slightly so that _flags is always initialised before reset() is called. Otherwise a decision is made based on an uninitialised variable (as spotted by valgrind)
git-svn-id: svn://localhost/ardour2/trunk@2568 d708f5d6-7413-0410-9779-e7cbd77b26cf
-rw-r--r-- | libs/ardour/ardour/audio_port.h | 4 | ||||
-rw-r--r-- | libs/ardour/ardour/midi_port.h | 2 | ||||
-rw-r--r-- | libs/ardour/ardour/port.h | 2 | ||||
-rw-r--r-- | libs/ardour/audio_port.cc | 8 | ||||
-rw-r--r-- | libs/ardour/internal_audio_port.cc | 3 | ||||
-rw-r--r-- | libs/ardour/internal_port.cc | 2 | ||||
-rw-r--r-- | libs/ardour/jack_audio_port.cc | 2 | ||||
-rw-r--r-- | libs/ardour/jack_midi_port.cc | 5 | ||||
-rw-r--r-- | libs/ardour/jack_port.cc | 2 | ||||
-rw-r--r-- | libs/ardour/midi_port.cc | 4 | ||||
-rw-r--r-- | libs/ardour/port.cc | 5 |
11 files changed, 21 insertions, 18 deletions
diff --git a/libs/ardour/ardour/audio_port.h b/libs/ardour/ardour/audio_port.h index 035ac9ed5f..e412e09bc4 100644 --- a/libs/ardour/ardour/audio_port.h +++ b/libs/ardour/ardour/audio_port.h @@ -70,8 +70,8 @@ class AudioPort : public virtual Port { protected: friend class AudioEngine; - AudioPort (); // data buffer comes from elsewhere (e.g. JACK) - AudioPort (nframes_t); // data buffer owned by ardour + AudioPort (Flags); // data buffer comes from elsewhere (e.g. JACK) + AudioPort (Flags, nframes_t); // data buffer owned by ardour void reset (); /* engine isn't supposed to access below here */ diff --git a/libs/ardour/ardour/midi_port.h b/libs/ardour/ardour/midi_port.h index 48ebf31eef..3711373c31 100644 --- a/libs/ardour/ardour/midi_port.h +++ b/libs/ardour/ardour/midi_port.h @@ -51,7 +51,7 @@ class MidiPort : public virtual Port { protected: friend class AudioEngine; - MidiPort (nframes_t bufsize); + MidiPort (Flags, nframes_t bufsize); /* engine isn't supposed to access below here */ diff --git a/libs/ardour/ardour/port.h b/libs/ardour/ardour/port.h index 860dec994f..5c8192b6e8 100644 --- a/libs/ardour/ardour/port.h +++ b/libs/ardour/ardour/port.h @@ -97,7 +97,7 @@ class Port : public virtual sigc::trackable { protected: friend class AudioEngine; - Port (); + Port (Flags); virtual int disconnect () = 0; virtual void recompute_total_latency() const = 0; diff --git a/libs/ardour/audio_port.cc b/libs/ardour/audio_port.cc index aa8b363134..2e3682fe3b 100644 --- a/libs/ardour/audio_port.cc +++ b/libs/ardour/audio_port.cc @@ -26,15 +26,15 @@ using namespace std; nframes_t AudioPort::_short_over_length = 2; nframes_t AudioPort::_long_over_length = 10; -AudioPort::AudioPort() - : _buffer (0) +AudioPort::AudioPort(Flags flags) + : Port (flags), _buffer (0) { _type = DataType::AUDIO; reset(); } -AudioPort::AudioPort(nframes_t nframes) - : _buffer (nframes) +AudioPort::AudioPort(Flags flags, nframes_t nframes) + : Port (flags), _buffer (nframes) { _type = DataType::AUDIO; reset(); diff --git a/libs/ardour/internal_audio_port.cc b/libs/ardour/internal_audio_port.cc index f5c5c5dee9..b6356cb6fb 100644 --- a/libs/ardour/internal_audio_port.cc +++ b/libs/ardour/internal_audio_port.cc @@ -36,7 +36,8 @@ InternalAudioPort::default_mixdown (const list<InternalPort*>& ports, AudioBuffe } InternalAudioPort::InternalAudioPort(const string& name, Flags flgs) - : AudioPort (engine->frames_per_cycle()) + : Port (flgs) + , AudioPort (flgs, engine->frames_per_cycle()) , InternalPort (name, DataType::AUDIO, flgs) { _mixdown = default_mixdown; diff --git a/libs/ardour/internal_port.cc b/libs/ardour/internal_port.cc index 3854931819..620fd69caa 100644 --- a/libs/ardour/internal_port.cc +++ b/libs/ardour/internal_port.cc @@ -35,10 +35,10 @@ InternalPort::set_engine (AudioEngine* e) } InternalPort::InternalPort (const string& str, DataType type, Flags flags) + : Port (flags) { set_name (str); _type = type; - _flags = flags; } InternalPort::~InternalPort () diff --git a/libs/ardour/jack_audio_port.cc b/libs/ardour/jack_audio_port.cc index 83a6875f7d..acba8a787c 100644 --- a/libs/ardour/jack_audio_port.cc +++ b/libs/ardour/jack_audio_port.cc @@ -23,7 +23,7 @@ using namespace ARDOUR; JackAudioPort::JackAudioPort(const std::string& name, Flags flgs) - : JackPort (name, DataType::AUDIO, flgs) + : Port (flgs), AudioPort (flgs), JackPort (name, DataType::AUDIO, flgs) { } diff --git a/libs/ardour/jack_midi_port.cc b/libs/ardour/jack_midi_port.cc index 90ee93371d..109d7ca9e6 100644 --- a/libs/ardour/jack_midi_port.cc +++ b/libs/ardour/jack_midi_port.cc @@ -21,8 +21,9 @@ using namespace ARDOUR; JackMidiPort::JackMidiPort (const std::string& name, Flags flgs) - : JackPort (name, DataType::MIDI, flgs) - , MidiPort (4096) // FIXME FIXME FIXME Jack needs to tell us this + : Port (flgs) + , JackPort (name, DataType::MIDI, flgs) + , MidiPort (flgs, 4096) // FIXME FIXME FIXME Jack needs to tell us this , _nframes_this_cycle(0) { } diff --git a/libs/ardour/jack_port.cc b/libs/ardour/jack_port.cc index 221e46b076..02582d833e 100644 --- a/libs/ardour/jack_port.cc +++ b/libs/ardour/jack_port.cc @@ -31,7 +31,7 @@ using namespace std; AudioEngine* JackPort::engine = 0; JackPort::JackPort (const std::string& name, DataType type, Flags flgs) - : _port (0) + : Port (flgs), _port (0) { _port = jack_port_register (engine->jack(), name.c_str(), type.to_jack_type(), flgs, 0); diff --git a/libs/ardour/midi_port.cc b/libs/ardour/midi_port.cc index df4ab19008..bd72528794 100644 --- a/libs/ardour/midi_port.cc +++ b/libs/ardour/midi_port.cc @@ -25,8 +25,8 @@ using namespace ARDOUR; using namespace std; -MidiPort::MidiPort (nframes_t bufsize) - : _buffer (bufsize) +MidiPort::MidiPort (Flags flags, nframes_t bufsize) + : Port (flags), _buffer (bufsize) { _type = DataType::MIDI; reset(); diff --git a/libs/ardour/port.cc b/libs/ardour/port.cc index bfc1eaf279..f65ce9906b 100644 --- a/libs/ardour/port.cc +++ b/libs/ardour/port.cc @@ -22,8 +22,9 @@ using namespace ARDOUR; using namespace std; -Port::Port () - : _metering (0) +Port::Port (Flags flags) + : _flags (flags) + , _metering (0) , _last_monitor (false) { } |