diff --git a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp index b60cdd400b..4940d3e676 100644 --- a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp +++ b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp @@ -632,7 +632,7 @@ public: { closeClient(); captureClient = nullptr; - reservoir.setSize (0); + reservoir.reset(); } template diff --git a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp index 5564cd7ede..d2f7ddf16a 100644 --- a/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/AAX/juce_AAX_Wrapper.cpp @@ -442,7 +442,7 @@ struct AAXClasses if (chunkID != juceChunkType) return AAX_CEffectParameters::GetChunkSize (chunkID, oSize); - tempFilterData.setSize (0); + tempFilterData.reset(); pluginInstance->getStateInformation (tempFilterData); *oSize = (uint32_t) tempFilterData.getSize(); return AAX_SUCCESS; @@ -458,7 +458,7 @@ struct AAXClasses oChunk->fSize = (int32_t) tempFilterData.getSize(); tempFilterData.copyTo (oChunk->fData, 0, tempFilterData.getSize()); - tempFilterData.setSize (0); + tempFilterData.reset(); return AAX_SUCCESS; } diff --git a/modules/juce_audio_plugin_client/RTAS/juce_RTAS_Wrapper.cpp b/modules/juce_audio_plugin_client/RTAS/juce_RTAS_Wrapper.cpp index 40ce8d18bd..3ebefdc6b7 100644 --- a/modules/juce_audio_plugin_client/RTAS/juce_RTAS_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/RTAS/juce_RTAS_Wrapper.cpp @@ -627,7 +627,7 @@ protected: { if (chunkID == juceChunkType) { - tempFilterData.setSize (0); + tempFilterData.reset(); juceFilter->getStateInformation (tempFilterData); *size = sizeof (SFicPlugInChunkHeader) + tempFilterData.getSize(); @@ -647,7 +647,7 @@ protected: chunk->fSize = sizeof (SFicPlugInChunkHeader) + tempFilterData.getSize(); tempFilterData.copyTo ((void*) chunk->fData, 0, tempFilterData.getSize()); - tempFilterData.setSize (0); + tempFilterData.reset(); return noErr; } @@ -659,7 +659,7 @@ protected: { if (chunkID == juceChunkType) { - tempFilterData.setSize (0); + tempFilterData.reset(); if (chunk->fSize - sizeof (SFicPlugInChunkHeader) > 0) { diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp index 719e05604c..855dc06c06 100644 --- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp +++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.cpp @@ -977,7 +977,7 @@ public: if (filter == nullptr) return 0; - chunkMemory.setSize (0); + chunkMemory.reset(); if (onlyStoreCurrentProgramData) filter->getCurrentProgramStateInformation (chunkMemory); else @@ -996,7 +996,7 @@ public: { if (filter != nullptr) { - chunkMemory.setSize (0); + chunkMemory.reset(); chunkMemoryTime = 0; if (byteSize > 0 && data != nullptr) @@ -1023,8 +1023,8 @@ public: && chunkMemoryTime < juce::Time::getApproximateMillisecondCounter() - 2000 && ! recursionCheck) { + chunkMemory.reset(); chunkMemoryTime = 0; - chunkMemory.setSize (0); } #if JUCE_MAC diff --git a/modules/juce_core/memory/juce_MemoryBlock.cpp b/modules/juce_core/memory/juce_MemoryBlock.cpp index f3be0f03d5..a827037135 100644 --- a/modules/juce_core/memory/juce_MemoryBlock.cpp +++ b/modules/juce_core/memory/juce_MemoryBlock.cpp @@ -127,8 +127,7 @@ void MemoryBlock::setSize (const size_t newSize, const bool initialiseToZero) { if (newSize <= 0) { - data.free(); - size = 0; + reset(); } else { @@ -149,6 +148,12 @@ void MemoryBlock::setSize (const size_t newSize, const bool initialiseToZero) } } +void MemoryBlock::reset() +{ + data.free(); + size = 0; +} + void MemoryBlock::ensureSize (const size_t minimumSize, const bool initialiseToZero) { if (size < minimumSize) diff --git a/modules/juce_core/memory/juce_MemoryBlock.h b/modules/juce_core/memory/juce_MemoryBlock.h index 801a9e1f5b..30bb3cab24 100644 --- a/modules/juce_core/memory/juce_MemoryBlock.h +++ b/modules/juce_core/memory/juce_MemoryBlock.h @@ -108,9 +108,9 @@ public: /** Resizes the memory block. - This will try to keep as much of the block's current content as it can, - and can optionally be made to clear any new space that gets allocated at - the end of the block. + Any data that is present in both the old and new sizes will be retained. + When enlarging the block, the new space that is allocated at the end can either be + cleared, or left uninitialised. @param newSize the new desired size for the block @param initialiseNewSpaceToZero if the block gets enlarged, this determines @@ -133,6 +133,9 @@ public: void ensureSize (const size_t minimumSize, bool initialiseNewSpaceToZero = false); + /** Frees all the blocks data, setting its size to 0. */ + void reset(); + //============================================================================== /** Fills the entire memory block with a repeated byte value. This is handy for clearing a block of memory to zero. diff --git a/modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp b/modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp index dcf786d732..d449bae366 100644 --- a/modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp +++ b/modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp @@ -41,17 +41,17 @@ void WebBrowserComponent::goToURL (const String& url, { lastURL = url; - lastHeaders.clear(); if (headers != nullptr) lastHeaders = *headers; + else + lastHeaders.clear(); - lastPostData.setSize (0); if (postData != nullptr) lastPostData = *postData; + else + lastPostData.reset(); blankPageShown = false; - - } void WebBrowserComponent::stop() diff --git a/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp b/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp index 1a36b7407b..5aafe3a6a7 100644 --- a/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp +++ b/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp @@ -46,17 +46,17 @@ void WebBrowserComponent::goToURL (const String& url, { lastURL = url; - lastHeaders.clear(); if (headers != nullptr) lastHeaders = *headers; + else + lastHeaders.clear(); - lastPostData.setSize (0); if (postData != nullptr) lastPostData = *postData; + else + lastPostData.reset(); blankPageShown = false; - - } void WebBrowserComponent::stop() diff --git a/modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm b/modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm index 286ff804b3..46d8da7be0 100644 --- a/modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm +++ b/modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm @@ -265,13 +265,15 @@ void WebBrowserComponent::goToURL (const String& url, { lastURL = url; - lastHeaders.clear(); if (headers != nullptr) lastHeaders = *headers; + else + lastHeaders.clear(); - lastPostData.setSize (0); if (postData != nullptr) lastPostData = *postData; + else + lastPostData.reset(); blankPageShown = false; diff --git a/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp b/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp index 0a5b307235..fdc6be7b34 100644 --- a/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp +++ b/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp @@ -214,13 +214,15 @@ void WebBrowserComponent::goToURL (const String& url, { lastURL = url; - lastHeaders.clear(); if (headers != nullptr) lastHeaders = *headers; + else + lastHeaders.clear(); - lastPostData.setSize (0); if (postData != nullptr) lastPostData = *postData; + else + lastPostData.reset(); blankPageShown = false;