diff --git a/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.cpp b/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.cpp index dab587d144..3890cb90ff 100644 --- a/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.cpp +++ b/extras/JuceDemo/Source/demos/AudioDemoLatencyPage.cpp @@ -38,10 +38,8 @@ public: sampleRate (0), isRunning (false), resultsBox (resultsBox_) - { - } - - ~LatencyTester() + deviceInputLatency (0), + deviceOutputLatency (0) { } diff --git a/extras/JuceDemo/Source/demos/AudioDemoSynthPage.cpp b/extras/JuceDemo/Source/demos/AudioDemoSynthPage.cpp index dca2260301..c25049fc64 100644 --- a/extras/JuceDemo/Source/demos/AudioDemoSynthPage.cpp +++ b/extras/JuceDemo/Source/demos/AudioDemoSynthPage.cpp @@ -47,8 +47,7 @@ class SineWaveVoice : public SynthesiserVoice { public: SineWaveVoice() - : angleDelta (0.0), - tailOff (0.0) + : currentAngle (0), angleDelta (0), level (0), tailOff (0) { } diff --git a/extras/JuceDemo/Source/demos/WidgetsDemo.cpp b/extras/JuceDemo/Source/demos/WidgetsDemo.cpp index a04b7b0a48..2eecd1c63d 100644 --- a/extras/JuceDemo/Source/demos/WidgetsDemo.cpp +++ b/extras/JuceDemo/Source/demos/WidgetsDemo.cpp @@ -246,9 +246,8 @@ public: void changeListenerCallback (ChangeBroadcaster* source) { - ColourSelector* cs = dynamic_cast (source); - - setColour (TextButton::buttonColourId, cs->getCurrentColour()); + if (ColourSelector* cs = dynamic_cast (source)) + setColour (TextButton::buttonColourId, cs->getCurrentColour()); } }; diff --git a/modules/juce_audio_basics/effects/juce_IIRFilter.cpp b/modules/juce_audio_basics/effects/juce_IIRFilter.cpp index cae9b79fb8..7bf4d762e8 100644 --- a/modules/juce_audio_basics/effects/juce_IIRFilter.cpp +++ b/modules/juce_audio_basics/effects/juce_IIRFilter.cpp @@ -32,6 +32,7 @@ IIRFilter::IIRFilter() : active (false), v1 (0), v2 (0) { + zeromem (coefficients, sizeof (coefficients)); } IIRFilter::IIRFilter (const IIRFilter& other) diff --git a/modules/juce_audio_basics/effects/juce_Reverb.h b/modules/juce_audio_basics/effects/juce_Reverb.h index 48822fb8a6..d50d4790ec 100644 --- a/modules/juce_audio_basics/effects/juce_Reverb.h +++ b/modules/juce_audio_basics/effects/juce_Reverb.h @@ -220,7 +220,10 @@ private: class CombFilter { public: - CombFilter() noexcept : bufferSize (0), bufferIndex (0) {} + CombFilter() noexcept + : bufferSize (0), bufferIndex (0), + feedback (0), last (0), damp1 (0), damp2 (0) + {} void setSize (const int size) { diff --git a/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp b/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp index 18509823f7..61c0e29ebe 100644 --- a/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_BufferingAudioSource.cpp @@ -35,6 +35,7 @@ BufferingAudioSource::BufferingAudioSource (PositionableAudioSource* source_, bufferValidStart (0), bufferValidEnd (0), nextPlayPos (0), + sampleRate (0), wasSourceLooping (false), isPrepared (false) { @@ -208,42 +209,40 @@ bool BufferingAudioSource::readNextBufferChunk() } } - if (sectionToReadStart != sectionToReadEnd) - { - jassert (buffer.getNumSamples() > 0); - const int bufferIndexStart = (int) (sectionToReadStart % buffer.getNumSamples()); - const int bufferIndexEnd = (int) (sectionToReadEnd % buffer.getNumSamples()); + if (sectionToReadStart == sectionToReadEnd) + return false; - if (bufferIndexStart < bufferIndexEnd) - { - readBufferSection (sectionToReadStart, - (int) (sectionToReadEnd - sectionToReadStart), - bufferIndexStart); - } - else - { - const int initialSize = buffer.getNumSamples() - bufferIndexStart; + jassert (buffer.getNumSamples() > 0); + const int bufferIndexStart = (int) (sectionToReadStart % buffer.getNumSamples()); + const int bufferIndexEnd = (int) (sectionToReadEnd % buffer.getNumSamples()); - readBufferSection (sectionToReadStart, - initialSize, - bufferIndexStart); + if (bufferIndexStart < bufferIndexEnd) + { + readBufferSection (sectionToReadStart, + (int) (sectionToReadEnd - sectionToReadStart), + bufferIndexStart); + } + else + { + const int initialSize = buffer.getNumSamples() - bufferIndexStart; - readBufferSection (sectionToReadStart + initialSize, - (int) (sectionToReadEnd - sectionToReadStart) - initialSize, - 0); - } + readBufferSection (sectionToReadStart, + initialSize, + bufferIndexStart); + readBufferSection (sectionToReadStart + initialSize, + (int) (sectionToReadEnd - sectionToReadStart) - initialSize, + 0); + } + + { const ScopedLock sl2 (bufferStartPosLock); bufferValidStart = newBVS; bufferValidEnd = newBVE; - - return true; - } - else - { - return false; } + + return true; } void BufferingAudioSource::readBufferSection (const int64 start, const int length, const int bufferOffset) diff --git a/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp b/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp index 1bacbc8c33..4f8c4cf25b 100644 --- a/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp +++ b/modules/juce_audio_basics/sources/juce_ResamplingAudioSource.cpp @@ -29,10 +29,14 @@ ResamplingAudioSource::ResamplingAudioSource (AudioSource* const inputSource, ratio (1.0), lastRatio (1.0), buffer (numChannels_, 0), + bufferPos (0), sampsInBuffer (0), + subSampleOffset (0), numChannels (numChannels_) { jassert (input != nullptr); + + zeromem (coefficients, sizeof (coefficients)); } ResamplingAudioSource::~ResamplingAudioSource() {} diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp index 984439566a..6806e5cea2 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp @@ -94,6 +94,7 @@ AudioDeviceManager::AudioDeviceManager() listNeedsScanning (true), useInputNames (false), inputLevel (0), + testSoundPosition (0), tempBuffer (2, 2), cpuUsageMs (0), timeToCpuScale (0) diff --git a/modules/juce_audio_formats/sampler/juce_Sampler.cpp b/modules/juce_audio_formats/sampler/juce_Sampler.cpp index 31d183b670..23fa7c2793 100644 --- a/modules/juce_audio_formats/sampler/juce_Sampler.cpp +++ b/modules/juce_audio_formats/sampler/juce_Sampler.cpp @@ -73,10 +73,9 @@ bool SamplerSound::appliesToChannel (const int /*midiChannel*/) SamplerVoice::SamplerVoice() : pitchRatio (0.0), sourceSamplePosition (0.0), - lgain (0.0f), - rgain (0.0f), - isInAttack (false), - isInRelease (false) + lgain (0.0f), rgain (0.0f), + attackReleaseLevel (0), attackDelta (0), releaseDelta (0), + isInAttack (false), isInRelease (false) { } diff --git a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp index 175e3681fa..a36386d194 100644 --- a/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp +++ b/modules/juce_audio_processors/processors/juce_AudioProcessorGraph.cpp @@ -924,7 +924,9 @@ void AudioProcessorGraph::Node::setParentGraph (AudioProcessorGraph* const graph AudioProcessorGraph::AudioProcessorGraph() : lastNodeId (0), renderingBuffers (1, 1), - currentAudioOutputBuffer (1, 1) + currentAudioInputBuffer (nullptr), + currentAudioOutputBuffer (1, 1), + currentMidiInputBuffer (nullptr) { } diff --git a/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp b/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp index e88e99817a..66b20e2743 100644 --- a/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp +++ b/modules/juce_audio_utils/gui/juce_AudioThumbnail.cpp @@ -77,13 +77,13 @@ class AudioThumbnail::LevelDataSource : public TimeSliceClient public: LevelDataSource (AudioThumbnail& thumb, AudioFormatReader* newReader, int64 hash) : lengthInSamples (0), numSamplesFinished (0), sampleRate (0), numChannels (0), - hashCode (hash), owner (thumb), reader (newReader) + hashCode (hash), owner (thumb), reader (newReader), lastReaderUseTime (0) { } LevelDataSource (AudioThumbnail& thumb, InputSource* src) : lengthInSamples (0), numSamplesFinished (0), sampleRate (0), numChannels (0), - hashCode (src->hashCode()), owner (thumb), source (src) + hashCode (src->hashCode()), owner (thumb), source (src), lastReaderUseTime (0) { } @@ -525,6 +525,7 @@ AudioThumbnail::AudioThumbnail (const int originalSamplesPerThumbnailSample, window (new CachedWindow()), samplesPerThumbSample (originalSamplesPerThumbnailSample), totalSamples (0), + numSamplesFinished (0), numChannels (0), sampleRate (0) { diff --git a/modules/juce_core/threads/juce_ThreadLocalValue.h b/modules/juce_core/threads/juce_ThreadLocalValue.h index e6a2389bf4..22525c0751 100644 --- a/modules/juce_core/threads/juce_ThreadLocalValue.h +++ b/modules/juce_core/threads/juce_ThreadLocalValue.h @@ -178,7 +178,7 @@ private: struct ObjectHolder { ObjectHolder (const Thread::ThreadID& tid) - : threadId (tid), object() + : threadId (tid), next (nullptr), object() {} Thread::ThreadID threadId; diff --git a/modules/juce_core/time/juce_PerformanceCounter.cpp b/modules/juce_core/time/juce_PerformanceCounter.cpp index 42daf1a3f3..64da598ae1 100644 --- a/modules/juce_core/time/juce_PerformanceCounter.cpp +++ b/modules/juce_core/time/juce_PerformanceCounter.cpp @@ -33,6 +33,7 @@ PerformanceCounter::PerformanceCounter (const String& name_, numRuns (0), runsPerPrint (runsPerPrintout), totalTime (0), + started (0), outputFile (loggingFile) { if (outputFile != File::nonexistent) diff --git a/modules/juce_core/xml/juce_XmlDocument.cpp b/modules/juce_core/xml/juce_XmlDocument.cpp index 8ab02a200e..0c0a422da8 100644 --- a/modules/juce_core/xml/juce_XmlDocument.cpp +++ b/modules/juce_core/xml/juce_XmlDocument.cpp @@ -29,12 +29,18 @@ XmlDocument::XmlDocument (const String& documentText) : originalText (documentText), input (nullptr), + outOfData (false), + errorOccurred (false), + needToLoadDTD (false), ignoreEmptyTextElements (true) { } XmlDocument::XmlDocument (const File& file) : input (nullptr), + outOfData (false), + errorOccurred (false), + needToLoadDTD (false), ignoreEmptyTextElements (true), inputSource (new FileInputSource (file)) { diff --git a/modules/juce_core/zip/juce_ZipFile.cpp b/modules/juce_core/zip/juce_ZipFile.cpp index 5a2e98941b..d3e83894cc 100644 --- a/modules/juce_core/zip/juce_ZipFile.cpp +++ b/modules/juce_core/zip/juce_ZipFile.cpp @@ -450,7 +450,8 @@ public: storedPathname (storedPath.isEmpty() ? f.getFileName() : storedPath), compressionLevel (compression), compressedSize (0), - headerStart (0) + headerStart (0), + checksum (0) { } diff --git a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp index a1584e0b1d..6fe47db9da 100644 --- a/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp +++ b/modules/juce_gui_basics/lookandfeel/juce_LookAndFeel.cpp @@ -2612,10 +2612,12 @@ void LookAndFeel::layoutFileBrowserComponent (FileBrowserComponent& browserComp, y += controlsHeight + 4; - Component* const listAsComp = dynamic_cast (fileListComponent); - listAsComp->setBounds (x, y, w, browserComp.getHeight() - y - bottomSectionHeight); + if (Component* const listAsComp = dynamic_cast (fileListComponent)) + { + listAsComp->setBounds (x, y, w, browserComp.getHeight() - y - bottomSectionHeight); + y = listAsComp->getBottom() + 4; + } - y = listAsComp->getBottom() + 4; filenameBox->setBounds (x + 50, y, w - 50, controlsHeight); } diff --git a/modules/juce_gui_basics/widgets/juce_TreeView.cpp b/modules/juce_gui_basics/widgets/juce_TreeView.cpp index a80449ee0f..09ec5e1960 100644 --- a/modules/juce_gui_basics/widgets/juce_TreeView.cpp +++ b/modules/juce_gui_basics/widgets/juce_TreeView.cpp @@ -30,7 +30,8 @@ public: ContentComponent (TreeView& tree) : owner (tree), buttonUnderMouse (nullptr), - isDragging (false) + isDragging (false), + needSelectionOnMouseUp (false) { } @@ -924,7 +925,7 @@ class TreeView::InsertPointHighlight : public Component { public: InsertPointHighlight() - : lastItem (nullptr) + : lastItem (nullptr), lastIndex (0) { setSize (100, 12); setAlwaysOnTop (true); @@ -1122,6 +1123,8 @@ TreeViewItem::TreeViewItem() y (0), itemHeight (0), totalHeight (0), + itemWidth (0), + totalWidth (0), selected (false), redrawNeeded (true), drawLinesInside (true), @@ -1370,7 +1373,7 @@ Rectangle TreeViewItem::getItemPosition (const bool relativeToTreeViewTopLe Rectangle r (indentX, y, jmax (0, width), totalHeight); - if (relativeToTreeViewTopLeft) + if (relativeToTreeViewTopLeft && ownerView != nullptr) r -= ownerView->viewport->getViewPosition(); return r; diff --git a/modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp b/modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp index 17b56d9475..9e3cfb3c26 100644 --- a/modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp +++ b/modules/juce_gui_extra/misc/juce_BubbleMessageComponent.cpp @@ -23,8 +23,8 @@ */ BubbleMessageComponent::BubbleMessageComponent (int fadeOutLengthMs) - : fadeOutLength (fadeOutLengthMs), - deleteAfterUse (false) + : fadeOutLength (fadeOutLengthMs), mouseClickCounter (0), + expiryTime (0), deleteAfterUse (false) { } diff --git a/modules/juce_gui_extra/misc/juce_SplashScreen.cpp b/modules/juce_gui_extra/misc/juce_SplashScreen.cpp index 66f49891fe..ffa0ffacf2 100644 --- a/modules/juce_gui_extra/misc/juce_SplashScreen.cpp +++ b/modules/juce_gui_extra/misc/juce_SplashScreen.cpp @@ -23,6 +23,7 @@ */ SplashScreen::SplashScreen() + : originalClickCounter (0) { setOpaque (true); }