From 2623f4d1e1d9fc84113c4368fcff111841bb7968 Mon Sep 17 00:00:00 2001 From: jules Date: Sun, 1 Dec 2013 11:32:39 +0000 Subject: [PATCH] Added method String::clear(), and used it to replace a few uses of String::empty. --- .../Source/ComponentEditor/jucer_BinaryResources.cpp | 2 +- .../Source/ComponentEditor/jucer_JucerDocument.cpp | 2 +- .../Source/ComponentEditor/paintelements/jucer_FillType.h | 2 +- .../juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp | 4 ++-- .../juce_audio_devices/audio_io/juce_AudioDeviceManager.h | 2 +- modules/juce_audio_devices/native/juce_android_Audio.cpp | 2 +- modules/juce_audio_devices/native/juce_android_OpenSL.cpp | 2 +- modules/juce_audio_devices/native/juce_ios_Audio.cpp | 2 +- modules/juce_audio_devices/native/juce_linux_ALSA.cpp | 2 +- modules/juce_audio_devices/native/juce_linux_JackAudio.cpp | 2 +- modules/juce_audio_devices/native/juce_win32_ASIO.cpp | 6 +++--- modules/juce_audio_devices/native/juce_win32_WASAPI.cpp | 2 +- .../wrapper/juce_ActiveX_GlueCode.cpp | 2 +- .../wrapper/juce_NPAPI_GlueCode.cpp | 2 +- modules/juce_core/files/juce_File.h | 2 +- modules/juce_core/network/juce_Socket.cpp | 4 ++-- modules/juce_core/text/juce_String.cpp | 6 ++++++ modules/juce_core/text/juce_String.h | 3 +++ modules/juce_core/xml/juce_XmlDocument.cpp | 2 +- modules/juce_graphics/fonts/juce_AttributedString.cpp | 2 +- .../filebrowser/juce_ImagePreviewComponent.cpp | 2 +- .../juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm | 6 +++--- modules/juce_gui_basics/native/juce_win32_FileChooser.cpp | 2 +- modules/juce_gui_basics/windows/juce_ComponentPeer.h | 2 +- modules/juce_gui_basics/windows/juce_TooltipWindow.cpp | 2 +- .../native/juce_android_WebBrowserComponent.cpp | 6 +++--- .../native/juce_linux_WebBrowserComponent.cpp | 6 +++--- .../juce_gui_extra/native/juce_mac_WebBrowserComponent.mm | 6 +++--- .../native/juce_win32_WebBrowserComponent.cpp | 6 +++--- .../juce_video/native/juce_win32_DirectShowComponent.cpp | 2 +- 30 files changed, 51 insertions(+), 42 deletions(-) diff --git a/extras/Introjucer/Source/ComponentEditor/jucer_BinaryResources.cpp b/extras/Introjucer/Source/ComponentEditor/jucer_BinaryResources.cpp index 2a98e1a277..df79428438 100644 --- a/extras/Introjucer/Source/ComponentEditor/jucer_BinaryResources.cpp +++ b/extras/Introjucer/Source/ComponentEditor/jucer_BinaryResources.cpp @@ -152,7 +152,7 @@ String BinaryResources::browseForResource (const String& title, TRANS("Adding Resource"), TRANS("Failed to load the file!")); - name = String::empty; + name.clear(); } return name; diff --git a/extras/Introjucer/Source/ComponentEditor/jucer_JucerDocument.cpp b/extras/Introjucer/Source/ComponentEditor/jucer_JucerDocument.cpp index 868beedb74..24b2fd4c98 100644 --- a/extras/Introjucer/Source/ComponentEditor/jucer_JucerDocument.cpp +++ b/extras/Introjucer/Source/ComponentEditor/jucer_JucerDocument.cpp @@ -469,7 +469,7 @@ void JucerDocument::fillInGeneratedCode (GeneratedCode& code) const String baseClassToAdd (baseClasses[i]); if (baseClassToAdd == "Component" || baseClassToAdd == "Button") - baseClassToAdd = String::empty; + baseClassToAdd.clear(); String& s = code.getCallbackCode (baseClassToAdd, returnValues[i], methods[i], false); diff --git a/extras/Introjucer/Source/ComponentEditor/paintelements/jucer_FillType.h b/extras/Introjucer/Source/ComponentEditor/paintelements/jucer_FillType.h index 7d6feff19f..5406f833a6 100644 --- a/extras/Introjucer/Source/ComponentEditor/paintelements/jucer_FillType.h +++ b/extras/Introjucer/Source/ComponentEditor/paintelements/jucer_FillType.h @@ -329,7 +329,7 @@ private: gradPos2 = RelativePositionedRectangle(); gradPos2.rect = PositionedRectangle ("100 100"); - imageResourceName = String::empty; + imageResourceName.clear(); imageOpacity = 1.0; imageAnchor = RelativePositionedRectangle(); imageAnchor.rect = PositionedRectangle ("0 0"); diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp index 9d2041d2b2..b04c95c469 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.cpp @@ -361,8 +361,8 @@ void AudioDeviceManager::getAudioDeviceSetup (AudioDeviceSetup& setup) void AudioDeviceManager::deleteCurrentDevice() { currentAudioDevice = nullptr; - currentSetup.inputDeviceName = String::empty; - currentSetup.outputDeviceName = String::empty; + currentSetup.inputDeviceName.clear(); + currentSetup.outputDeviceName.clear(); } void AudioDeviceManager::setCurrentAudioDeviceType (const String& type, diff --git a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h index 14432bd6c5..d82159326f 100644 --- a/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h +++ b/modules/juce_audio_devices/audio_io/juce_AudioDeviceManager.h @@ -190,7 +190,7 @@ public: int numOutputChannelsNeeded, const XmlElement* savedState, bool selectDefaultDeviceOnFailure, - const String& preferredDefaultDeviceName = String::empty, + const String& preferredDefaultDeviceName = String(), const AudioDeviceSetup* preferredSetupOptions = 0); /** Returns some XML representing the current state of the manager. diff --git a/modules/juce_audio_devices/native/juce_android_Audio.cpp b/modules/juce_audio_devices/native/juce_android_Audio.cpp index e21f9468d6..a3994389b0 100644 --- a/modules/juce_audio_devices/native/juce_android_Audio.cpp +++ b/modules/juce_audio_devices/native/juce_android_Audio.cpp @@ -159,7 +159,7 @@ public: if (sampleRate != (int) requestedSampleRate) return "Sample rate not allowed"; - lastError = String::empty; + lastError.clear(); int preferredBufferSize = (bufferSize <= 0) ? getDefaultBufferSize() : bufferSize; numDeviceInputChannels = 0; diff --git a/modules/juce_audio_devices/native/juce_android_OpenSL.cpp b/modules/juce_audio_devices/native/juce_android_OpenSL.cpp index d15629bc9f..ad29411913 100644 --- a/modules/juce_audio_devices/native/juce_android_OpenSL.cpp +++ b/modules/juce_audio_devices/native/juce_android_OpenSL.cpp @@ -105,7 +105,7 @@ public: { close(); - lastError = String::empty; + lastError.clear(); sampleRate = (int) requestedSampleRate; int preferredBufferSize = (bufferSize <= 0) ? getDefaultBufferSize() : bufferSize; diff --git a/modules/juce_audio_devices/native/juce_ios_Audio.cpp b/modules/juce_audio_devices/native/juce_ios_Audio.cpp index adbb1dc67b..d99f59cd69 100644 --- a/modules/juce_audio_devices/native/juce_ios_Audio.cpp +++ b/modules/juce_audio_devices/native/juce_ios_Audio.cpp @@ -80,7 +80,7 @@ public: { close(); - lastError = String::empty; + lastError.clear(); preferredBufferSize = (bufferSize <= 0) ? getDefaultBufferSize() : bufferSize; // xxx set up channel mapping diff --git a/modules/juce_audio_devices/native/juce_linux_ALSA.cpp b/modules/juce_audio_devices/native/juce_linux_ALSA.cpp index 7d47f05689..111fd34519 100644 --- a/modules/juce_audio_devices/native/juce_linux_ALSA.cpp +++ b/modules/juce_audio_devices/native/juce_linux_ALSA.cpp @@ -482,7 +482,7 @@ public: { close(); - error = String::empty; + error.clear(); sampleRate = newSampleRate; bufferSize = newBufferSize; diff --git a/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp b/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp index 08962a0b48..7336496b10 100644 --- a/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp +++ b/modules/juce_audio_devices/native/juce_linux_JackAudio.cpp @@ -235,7 +235,7 @@ public: return lastError; } - lastError = String::empty; + lastError.clear(); close(); juce::jack_set_process_callback (client, processCallback, this); diff --git a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp index dc46c69388..cefea8f04e 100644 --- a/modules/juce_audio_devices/native/juce_win32_ASIO.cpp +++ b/modules/juce_audio_devices/native/juce_win32_ASIO.cpp @@ -456,7 +456,7 @@ public: updateClockSources(); currentSampleRate = getSampleRate(); - error = String::empty; + error.clear(); buffersCreated = false; setSampleRate (sampleRate); @@ -617,7 +617,7 @@ public: void close() { - error = String::empty; + error.clear(); stopTimer(); stop(); @@ -1181,7 +1181,7 @@ private: numActiveOutputChans = 0; currentCallback = nullptr; - error = String::empty; + error.clear(); if (getName().isEmpty()) return error; diff --git a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp index 7482ec123b..204a749fa2 100644 --- a/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp +++ b/modules/juce_audio_devices/native/juce_win32_WASAPI.cpp @@ -924,7 +924,7 @@ public: double sampleRate, int bufferSizeSamples) { close(); - lastError = String::empty; + lastError.clear(); if (sampleRates.size() == 0 && inputDevice != nullptr && outputDevice != nullptr) { diff --git a/modules/juce_browser_plugin_client/wrapper/juce_ActiveX_GlueCode.cpp b/modules/juce_browser_plugin_client/wrapper/juce_ActiveX_GlueCode.cpp index 4cf2f7ab19..cb55f6df33 100644 --- a/modules/juce_browser_plugin_client/wrapper/juce_ActiveX_GlueCode.cpp +++ b/modules/juce_browser_plugin_client/wrapper/juce_ActiveX_GlueCode.cpp @@ -803,7 +803,7 @@ extern "C" BOOL WINAPI DllMain (HANDLE instance, DWORD reason, LPVOID) case DLL_PROCESS_DETACH: log ("DLL_PROCESS_DETACH"); - browserVersionDesc = String::empty; + browserVersionDesc.clear(); // IE has a tendency to leak our objects, so although none of this should be // necessary, it's best to make sure.. diff --git a/modules/juce_browser_plugin_client/wrapper/juce_NPAPI_GlueCode.cpp b/modules/juce_browser_plugin_client/wrapper/juce_NPAPI_GlueCode.cpp index 41210fb468..d842d36c3c 100644 --- a/modules/juce_browser_plugin_client/wrapper/juce_NPAPI_GlueCode.cpp +++ b/modules/juce_browser_plugin_client/wrapper/juce_NPAPI_GlueCode.cpp @@ -1031,7 +1031,7 @@ NPError NPP_Destroy (NPP npp, NPSavedData** save) { log ("shutdownJuce_GUI()"); shutdownJuce_GUI(); - browserVersionDesc = String::empty; + browserVersionDesc.clear(); } } diff --git a/modules/juce_core/files/juce_File.h b/modules/juce_core/files/juce_File.h index 6e4e6549eb..cfcba5e6b0 100644 --- a/modules/juce_core/files/juce_File.h +++ b/modules/juce_core/files/juce_File.h @@ -741,7 +741,7 @@ public: @see revealToUser */ - bool startAsProcess (const String& parameters = String::empty) const; + bool startAsProcess (const String& parameters = String()) const; /** Opens Finder, Explorer, or whatever the OS uses, to show the user this file's location. @see startAsProcess diff --git a/modules/juce_core/network/juce_Socket.cpp b/modules/juce_core/network/juce_Socket.cpp index c902d414dc..2d5d1fec7d 100644 --- a/modules/juce_core/network/juce_Socket.cpp +++ b/modules/juce_core/network/juce_Socket.cpp @@ -386,7 +386,7 @@ void StreamingSocket::close() ::close (handle); #endif - hostName = String::empty; + hostName.clear(); portNumber = 0; handle = -1; isListener = false; @@ -506,7 +506,7 @@ void DatagramSocket::close() ::close (handle); #endif - hostName = String::empty; + hostName.clear(); portNumber = 0; handle = -1; } diff --git a/modules/juce_core/text/juce_String.cpp b/modules/juce_core/text/juce_String.cpp index d2137de84a..21f2f20e59 100644 --- a/modules/juce_core/text/juce_String.cpp +++ b/modules/juce_core/text/juce_String.cpp @@ -259,6 +259,12 @@ void String::swapWith (String& other) noexcept std::swap (text, other.text); } +void String::clear() noexcept +{ + StringHolder::release (text); + text = &(emptyString.text); +} + String& String::operator= (const String& other) noexcept { StringHolder::retain (other.text); diff --git a/modules/juce_core/text/juce_String.h b/modules/juce_core/text/juce_String.h index c760239be0..febe6ee5d3 100644 --- a/modules/juce_core/text/juce_String.h +++ b/modules/juce_core/text/juce_String.h @@ -307,6 +307,9 @@ public: */ inline bool isNotEmpty() const noexcept { return text[0] != 0; } + /** Resets this string to be empty. */ + void clear() noexcept; + /** Case-insensitive comparison with another string. */ bool equalsIgnoreCase (const String& other) const noexcept; diff --git a/modules/juce_core/xml/juce_XmlDocument.cpp b/modules/juce_core/xml/juce_XmlDocument.cpp index b95a8a668c..6243d3e0b5 100644 --- a/modules/juce_core/xml/juce_XmlDocument.cpp +++ b/modules/juce_core/xml/juce_XmlDocument.cpp @@ -210,7 +210,7 @@ XmlElement* XmlDocument::parseDocumentElement (String::CharPointerType textToPar } else { - lastError = String::empty; + lastError.clear(); ScopedPointer result (readNextElement (! onlyReadOuterDocumentElement)); diff --git a/modules/juce_graphics/fonts/juce_AttributedString.cpp b/modules/juce_graphics/fonts/juce_AttributedString.cpp index d5999c8e94..43b6318f11 100644 --- a/modules/juce_graphics/fonts/juce_AttributedString.cpp +++ b/modules/juce_graphics/fonts/juce_AttributedString.cpp @@ -166,7 +166,7 @@ void AttributedString::append (const AttributedString& other) void AttributedString::clear() { - text = String::empty; + text.clear(); attributes.clear(); } diff --git a/modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp b/modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp index 8089683976..537aae3ae5 100644 --- a/modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp +++ b/modules/juce_gui_basics/filebrowser/juce_ImagePreviewComponent.cpp @@ -58,7 +58,7 @@ void ImagePreviewComponent::timerCallback() stopTimer(); currentThumbnail = Image::null; - currentDetails = String::empty; + currentDetails.clear(); repaint(); ScopedPointer in (fileToLoad.createInputStream()); diff --git a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm index 779638036c..54bce81756 100644 --- a/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm +++ b/modules/juce_gui_basics/native/juce_mac_NSViewComponentPeer.mm @@ -1452,7 +1452,7 @@ private: if (target != nullptr) [(NSView*) self interpretKeyEvents: [NSArray arrayWithObject: ev]]; else - owner->stringBeingComposed = String::empty; + owner->stringBeingComposed.clear(); if ((! owner->textWasInserted) && (owner == nullptr || ! owner->redirectKeyDown (ev))) { @@ -1490,7 +1490,7 @@ private: } } - owner->stringBeingComposed = String::empty; + owner->stringBeingComposed.clear(); } } @@ -1525,7 +1525,7 @@ private: owner->textWasInserted = true; } - owner->stringBeingComposed = String::empty; + owner->stringBeingComposed.clear(); } } } diff --git a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp index da839eb6fa..930bf55cf1 100644 --- a/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp +++ b/modules/juce_gui_basics/native/juce_win32_FileChooser.cpp @@ -183,7 +183,7 @@ void FileChooser::showPlatformDialog (Array& results, const String& title_ if (! SHGetPathFromIDListW (list, files)) { files[0] = 0; - info.returnedString = String::empty; + info.returnedString.clear(); } LPMALLOC al; diff --git a/modules/juce_gui_basics/windows/juce_ComponentPeer.h b/modules/juce_gui_basics/windows/juce_ComponentPeer.h index 4a4b51581b..2dc2d3f5c1 100644 --- a/modules/juce_gui_basics/windows/juce_ComponentPeer.h +++ b/modules/juce_gui_basics/windows/juce_ComponentPeer.h @@ -310,7 +310,7 @@ public: Point position; bool isEmpty() const noexcept { return files.size() == 0 && text.isEmpty(); } - void clear() noexcept { files.clear(); text = String::empty; } + void clear() noexcept { files.clear(); text.clear(); } }; bool handleDragMove (const DragInfo&); diff --git a/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp b/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp index 6634efce2a..cc1ff7aa84 100644 --- a/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp +++ b/modules/juce_gui_basics/windows/juce_TooltipWindow.cpp @@ -115,7 +115,7 @@ String TooltipWindow::getTipFor (Component* const c) void TooltipWindow::hideTip() { - tipShowing = String::empty; + tipShowing.clear(); removeFromDesktop(); setVisible (false); } diff --git a/modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp b/modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp index 971715d98e..3cc6aacf7d 100644 --- a/modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp +++ b/modules/juce_gui_extra/native/juce_android_WebBrowserComponent.cpp @@ -60,14 +60,14 @@ void WebBrowserComponent::stop() void WebBrowserComponent::goBack() { - lastURL = String::empty; + lastURL.clear(); blankPageShown = false; } void WebBrowserComponent::goForward() { - lastURL = String::empty; + lastURL.clear(); } @@ -90,7 +90,7 @@ void WebBrowserComponent::reloadLastURL() if (lastURL.isNotEmpty()) { goToURL (lastURL, &lastHeaders, &lastPostData); - lastURL = String::empty; + lastURL.clear(); } } diff --git a/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp b/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp index d9212e6c23..f7c8228bcd 100644 --- a/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp +++ b/modules/juce_gui_extra/native/juce_linux_WebBrowserComponent.cpp @@ -65,14 +65,14 @@ void WebBrowserComponent::stop() void WebBrowserComponent::goBack() { - lastURL = String::empty; + lastURL.clear(); blankPageShown = false; } void WebBrowserComponent::goForward() { - lastURL = String::empty; + lastURL.clear(); } @@ -95,7 +95,7 @@ void WebBrowserComponent::reloadLastURL() if (lastURL.isNotEmpty()) { goToURL (lastURL, &lastHeaders, &lastPostData); - lastURL = String::empty; + lastURL.clear(); } } diff --git a/modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm b/modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm index a7997bb183..4ed27ed61f 100644 --- a/modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm +++ b/modules/juce_gui_extra/native/juce_mac_WebBrowserComponent.mm @@ -279,14 +279,14 @@ void WebBrowserComponent::stop() void WebBrowserComponent::goBack() { - lastURL = String::empty; + lastURL.clear(); blankPageShown = false; browser->goBack(); } void WebBrowserComponent::goForward() { - lastURL = String::empty; + lastURL.clear(); browser->goForward(); } @@ -328,7 +328,7 @@ void WebBrowserComponent::reloadLastURL() if (lastURL.isNotEmpty()) { goToURL (lastURL, &lastHeaders, &lastPostData); - lastURL = String::empty; + lastURL.clear(); } } diff --git a/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp b/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp index 3b40c500c5..cb4ef12356 100644 --- a/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp +++ b/modules/juce_gui_extra/native/juce_win32_WebBrowserComponent.cpp @@ -225,7 +225,7 @@ void WebBrowserComponent::stop() void WebBrowserComponent::goBack() { - lastURL = String::empty; + lastURL.clear(); blankPageShown = false; if (browser->browser != nullptr) @@ -234,7 +234,7 @@ void WebBrowserComponent::goBack() void WebBrowserComponent::goForward() { - lastURL = String::empty; + lastURL.clear(); if (browser->browser != nullptr) browser->browser->GoForward(); @@ -287,7 +287,7 @@ void WebBrowserComponent::reloadLastURL() if (lastURL.isNotEmpty()) { goToURL (lastURL, &lastHeaders, &lastPostData); - lastURL = String::empty; + lastURL.clear(); } } diff --git a/modules/juce_video/native/juce_win32_DirectShowComponent.cpp b/modules/juce_video/native/juce_win32_DirectShowComponent.cpp index 8ec01dd048..7142bc6505 100644 --- a/modules/juce_video/native/juce_win32_DirectShowComponent.cpp +++ b/modules/juce_video/native/juce_win32_DirectShowComponent.cpp @@ -840,7 +840,7 @@ void DirectShowComponent::closeMovie() context->release(); videoLoaded = false; - videoPath = String::empty; + videoPath.clear(); } //======================================================================