From a316bd5f6fe97d59e64db85ae2c41bd596fe0421 Mon Sep 17 00:00:00 2001 From: jules Date: Mon, 2 Dec 2013 09:44:17 +0000 Subject: [PATCH] Removed a few more places where static objects could cause problems for people who do unwise amounts of work in their static constructors. --- .../Source/Utility/jucer_MiscUtilities.h | 2 +- .../scanning/juce_PluginDirectoryScanner.cpp | 2 +- .../wrapper/juce_ActiveX_GlueCode.cpp | 8 ++++---- .../wrapper/juce_NPAPI_GlueCode.cpp | 2 +- .../juce_core/containers/juce_PropertySet.cpp | 2 +- modules/juce_core/files/juce_File.cpp | 4 ++-- modules/juce_core/files/juce_TemporaryFile.cpp | 4 ++-- modules/juce_core/javascript/juce_JSON.cpp | 14 +++++++------- .../juce_core/javascript/juce_Javascript.cpp | 2 +- .../juce_core/native/juce_android_Files.cpp | 2 +- modules/juce_core/native/juce_linux_Files.cpp | 4 ++-- modules/juce_core/native/juce_mac_Files.mm | 2 +- modules/juce_core/native/juce_win32_Files.cpp | 4 ++-- .../juce_core/time/juce_PerformanceCounter.cpp | 2 +- .../juce_core/time/juce_PerformanceCounter.h | 2 +- .../app_properties/juce_PropertiesFile.cpp | 6 +++--- .../values/juce_ValueTree.cpp | 18 +++++++++--------- .../filebrowser/juce_DirectoryContentsList.cpp | 2 +- .../juce_gui_basics/widgets/juce_ListBox.cpp | 2 +- .../widgets/juce_TableListBox.cpp | 2 +- .../juce_gui_basics/widgets/juce_TreeView.cpp | 2 +- 21 files changed, 44 insertions(+), 44 deletions(-) diff --git a/extras/Introjucer/Source/Utility/jucer_MiscUtilities.h b/extras/Introjucer/Source/Utility/jucer_MiscUtilities.h index 152ab784e2..482a2c07a2 100644 --- a/extras/Introjucer/Source/Utility/jucer_MiscUtilities.h +++ b/extras/Introjucer/Source/Utility/jucer_MiscUtilities.h @@ -231,7 +231,7 @@ public: if (getColour() != newColour) { if (newColour == defaultColour && defaultButton.isVisible()) - colourValue = var::null; + colourValue = var(); else colourValue = newColour.toDisplayString (true); } diff --git a/modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp b/modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp index 24eb6d27f4..5502f00a9e 100644 --- a/modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp +++ b/modules/juce_audio_processors/scanning/juce_PluginDirectoryScanner.cpp @@ -120,7 +120,7 @@ bool PluginDirectoryScanner::skipNextFile() void PluginDirectoryScanner::setDeadMansPedalFile (const StringArray& newContents) { - if (deadMansPedalFile != File::nonexistent) + if (deadMansPedalFile.getFullPathName().isNotEmpty()) deadMansPedalFile.replaceWithText (newContents.joinIntoString ("\n"), true, true); } 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 cb55f6df33..ca0418bdc0 100644 --- a/modules/juce_browser_plugin_client/wrapper/juce_ActiveX_GlueCode.cpp +++ b/modules/juce_browser_plugin_client/wrapper/juce_ActiveX_GlueCode.cpp @@ -252,7 +252,7 @@ public: } } - return var::null; + return var(); } bool hasProperty (const Identifier& propertyName) const override @@ -297,7 +297,7 @@ public: void removeProperty (const Identifier& propertyName) override { - setProperty (propertyName, var::null); + setProperty (propertyName, var()); } bool hasMethod (const Identifier& methodName) const override @@ -401,7 +401,7 @@ var variantTojuceVar (const VARIANT& v) switch (v.vt & ~VT_BYREF) { case VT_VOID: - case VT_EMPTY: return var::null; + case VT_EMPTY: return var(); case VT_I1: return var ((int) v.cVal); case VT_I2: return var ((int) v.iVal); case VT_I4: return var ((int) v.lVal); @@ -421,7 +421,7 @@ var variantTojuceVar (const VARIANT& v) } } - return var::null; + return var(); } //============================================================================== 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 d842d36c3c..b84e9834db 100644 --- a/modules/juce_browser_plugin_client/wrapper/juce_NPAPI_GlueCode.cpp +++ b/modules/juce_browser_plugin_client/wrapper/juce_NPAPI_GlueCode.cpp @@ -896,7 +896,7 @@ static var createValueFromNPVariant (NPP npp, const NPVariant& v) else if (NPVARIANT_IS_OBJECT (v) && npp != nullptr) return var (new DynamicObjectWrappingNPObject (npp, NPVARIANT_TO_OBJECT (v))); - return var::null; + return var(); } static void createNPVariantFromValue (NPP npp, NPVariant& out, const var& v) diff --git a/modules/juce_core/containers/juce_PropertySet.cpp b/modules/juce_core/containers/juce_PropertySet.cpp index d3c05bc723..6b02bafb4e 100644 --- a/modules/juce_core/containers/juce_PropertySet.cpp +++ b/modules/juce_core/containers/juce_PropertySet.cpp @@ -155,7 +155,7 @@ void PropertySet::removeValue (StringRef keyName) void PropertySet::setValue (const String& keyName, const XmlElement* const xml) { - setValue (keyName, xml == nullptr ? var::null + setValue (keyName, xml == nullptr ? var() : var (xml->createDocument ("", true))); } diff --git a/modules/juce_core/files/juce_File.cpp b/modules/juce_core/files/juce_File.cpp index ea945999ea..eff4af43ed 100644 --- a/modules/juce_core/files/juce_File.cpp +++ b/modules/juce_core/files/juce_File.cpp @@ -322,7 +322,7 @@ String File::getFileNameWithoutExtension() const bool File::isAChildOf (const File& potentialParent) const { - if (potentialParent == File::nonexistent) + if (potentialParent.fullPath.isEmpty()) return false; const String ourPath (getPathUpToLastSlash()); @@ -629,7 +629,7 @@ bool File::hasFileExtension (StringRef possibleSuffix) const File File::withFileExtension (StringRef newExtension) const { if (fullPath.isEmpty()) - return File::nonexistent; + return File(); String filePart (getFileName()); diff --git a/modules/juce_core/files/juce_TemporaryFile.cpp b/modules/juce_core/files/juce_TemporaryFile.cpp index d5789b65eb..50475d58f0 100644 --- a/modules/juce_core/files/juce_TemporaryFile.cpp +++ b/modules/juce_core/files/juce_TemporaryFile.cpp @@ -50,7 +50,7 @@ TemporaryFile::TemporaryFile (const File& target, const int optionFlags) targetFile (target) { // If you use this constructor, you need to give it a valid target file! - jassert (targetFile != File::nonexistent); + jassert (targetFile != File()); } TemporaryFile::TemporaryFile (const File& target, const File& temporary) @@ -79,7 +79,7 @@ bool TemporaryFile::overwriteTargetFileWithTemporary() const { // This method only works if you created this object with the constructor // that takes a target file! - jassert (targetFile != File::nonexistent); + jassert (targetFile != File()); if (temporaryFile.exists()) { diff --git a/modules/juce_core/javascript/juce_JSON.cpp b/modules/juce_core/javascript/juce_JSON.cpp index 8945fcc435..8aa819212a 100644 --- a/modules/juce_core/javascript/juce_JSON.cpp +++ b/modules/juce_core/javascript/juce_JSON.cpp @@ -35,7 +35,7 @@ public: switch (t.getAndAdvance()) { - case 0: result = var::null; return Result::ok(); + case 0: result = var(); return Result::ok(); case '{': return parseObject (t, result); case '[': return parseArray (t, result); } @@ -148,7 +148,7 @@ private: if (t2.getAndAdvance() == 'u' && t2.getAndAdvance() == 'l' && t2.getAndAdvance() == 'l') { t = t2; - result = var::null; + result = var(); return Result::ok(); } break; @@ -254,7 +254,7 @@ private: if (c2 != ':') return createFail ("Expected ':', but found", &oldT); - resultProperties.set (propertyName, var::null); + resultProperties.set (propertyName, var()); var* propertyValue = resultProperties.getVarPointer (propertyName); Result r2 (parseAny (t, *propertyValue)); @@ -300,7 +300,7 @@ private: return createFail ("Unexpected end-of-input in array declaration"); t = oldT; - destArray->add (var::null); + destArray->add (var()); Result r (parseAny (t, destArray->getReference (destArray->size() - 1))); if (r.failed()) @@ -514,7 +514,7 @@ var JSON::parse (const String& text) var result; if (! JSONParser::parseObjectOrArray (text.getCharPointer(), result)) - result = var::null; + result = var(); return result; } @@ -610,7 +610,7 @@ public: { switch (r.nextInt (depth > 3 ? 6 : 8)) { - case 0: return var::null; + case 0: return var(); case 1: return r.nextInt(); case 2: return r.nextInt64(); case 3: return r.nextBool(); @@ -638,7 +638,7 @@ public: } default: - return var::null; + return var(); } } diff --git a/modules/juce_core/javascript/juce_Javascript.cpp b/modules/juce_core/javascript/juce_Javascript.cpp index 1e269d088b..065093d85b 100644 --- a/modules/juce_core/javascript/juce_Javascript.cpp +++ b/modules/juce_core/javascript/juce_Javascript.cpp @@ -1244,7 +1244,7 @@ struct JavascriptEngine::RootObject : public DynamicObject if (matchIf (TokenTypes::openParen)) return parseSuffixes (matchCloseParen (parseExpression())); if (matchIf (TokenTypes::true_)) return parseSuffixes (new LiteralValue (location, (int) 1)); if (matchIf (TokenTypes::false_)) return parseSuffixes (new LiteralValue (location, (int) 0)); - if (matchIf (TokenTypes::null_)) return parseSuffixes (new LiteralValue (location, var::null)); + if (matchIf (TokenTypes::null_)) return parseSuffixes (new LiteralValue (location, var())); if (matchIf (TokenTypes::undefined)) return parseSuffixes (new Expression (location)); if (currentType == TokenTypes::literal) diff --git a/modules/juce_core/native/juce_android_Files.cpp b/modules/juce_core/native/juce_android_Files.cpp index 18180435dc..45903b15c9 100644 --- a/modules/juce_core/native/juce_android_Files.cpp +++ b/modules/juce_core/native/juce_android_Files.cpp @@ -80,7 +80,7 @@ File File::getSpecialLocation (const SpecialLocationType type) break; } - return File::nonexistent; + return File(); } bool File::moveToTrash() const diff --git a/modules/juce_core/native/juce_linux_Files.cpp b/modules/juce_core/native/juce_linux_Files.cpp index 45318d33df..d0dd54df4a 100644 --- a/modules/juce_core/native/juce_linux_Files.cpp +++ b/modules/juce_core/native/juce_linux_Files.cpp @@ -115,7 +115,7 @@ File File::getSpecialLocation (const SpecialLocationType type) if (struct passwd* const pw = getpwuid (getuid())) return File (CharPointer_UTF8 (pw->pw_dir)); - return File::nonexistent; + return File(); } case userDocumentsDirectory: return resolveXDGFolder ("XDG_DOCUMENTS_DIR", "~"); @@ -163,7 +163,7 @@ File File::getSpecialLocation (const SpecialLocationType type) break; } - return File::nonexistent; + return File(); } //============================================================================== diff --git a/modules/juce_core/native/juce_mac_Files.mm b/modules/juce_core/native/juce_mac_Files.mm index ab93b83ee5..0a00e92124 100644 --- a/modules/juce_core/native/juce_mac_Files.mm +++ b/modules/juce_core/native/juce_mac_Files.mm @@ -257,7 +257,7 @@ File File::getSpecialLocation (const SpecialLocationType type) return File (resultPath.convertToPrecomposedUnicode()); } - return File::nonexistent; + return File(); } //============================================================================== diff --git a/modules/juce_core/native/juce_win32_Files.cpp b/modules/juce_core/native/juce_win32_Files.cpp index 866d2d3b13..6f0b3f4ffc 100644 --- a/modules/juce_core/native/juce_win32_Files.cpp +++ b/modules/juce_core/native/juce_win32_Files.cpp @@ -93,7 +93,7 @@ namespace WindowsFileHelpers if (SHGetSpecialFolderPath (0, path, type, FALSE)) return File (String (path)); - return File::nonexistent; + return File(); } File getModuleFileName (HINSTANCE moduleHandle) @@ -542,7 +542,7 @@ File JUCE_CALLTYPE File::getSpecialLocation (const SpecialLocationType type) default: jassertfalse; // unknown type? - return File::nonexistent; + return File(); } return WindowsFileHelpers::getSpecialFolderPath (csidlType); diff --git a/modules/juce_core/time/juce_PerformanceCounter.cpp b/modules/juce_core/time/juce_PerformanceCounter.cpp index a071665319..b22d5e4848 100644 --- a/modules/juce_core/time/juce_PerformanceCounter.cpp +++ b/modules/juce_core/time/juce_PerformanceCounter.cpp @@ -28,7 +28,7 @@ static void appendToFile (const File& f, const String& s) { - if (f != File::nonexistent) + if (f.getFullPathName().isNotEmpty()) { FileOutputStream out (f); diff --git a/modules/juce_core/time/juce_PerformanceCounter.h b/modules/juce_core/time/juce_PerformanceCounter.h index 81db85636e..aac50d21c7 100644 --- a/modules/juce_core/time/juce_PerformanceCounter.h +++ b/modules/juce_core/time/juce_PerformanceCounter.h @@ -65,7 +65,7 @@ public: */ PerformanceCounter (const String& counterName, int runsPerPrintout = 100, - const File& loggingFile = File::nonexistent); + const File& loggingFile = File()); /** Destructor. */ ~PerformanceCounter(); diff --git a/modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp b/modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp index 0d83730f7f..3c1c0d42ce 100644 --- a/modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp +++ b/modules/juce_data_structures/app_properties/juce_PropertiesFile.cpp @@ -90,8 +90,8 @@ File PropertiesFile::Options::getDefaultFile() const File dir (File::getSpecialLocation (commonToAllUsers ? File::commonApplicationDataDirectory : File::userApplicationDataDirectory)); - if (dir == File::nonexistent) - return File::nonexistent; + if (dir == File()) + return File(); dir = dir.getChildFile (folderName.isNotEmpty() ? folderName : applicationName); @@ -165,7 +165,7 @@ bool PropertiesFile::save() stopTimer(); if (options.doNotSave - || file == File::nonexistent + || file == File() || file.isDirectory() || ! file.getParentDirectory().createDirectory()) return false; diff --git a/modules/juce_data_structures/values/juce_ValueTree.cpp b/modules/juce_data_structures/values/juce_ValueTree.cpp index 7acbcefe0b..a9e3893b45 100644 --- a/modules/juce_data_structures/values/juce_ValueTree.cpp +++ b/modules/juce_data_structures/values/juce_ValueTree.cpp @@ -168,7 +168,7 @@ public: } else { - undoManager->perform (new SetPropertyAction (this, name, newValue, var::null, true, false)); + undoManager->perform (new SetPropertyAction (this, name, newValue, var(), true, false)); } } } @@ -188,7 +188,7 @@ public: else { if (properties.contains (name)) - undoManager->perform (new SetPropertyAction (this, name, var::null, properties [name], false, true)); + undoManager->perform (new SetPropertyAction (this, name, var(), properties [name], false, true)); } } @@ -206,7 +206,7 @@ public: else { for (int i = properties.size(); --i >= 0;) - undoManager->perform (new SetPropertyAction (this, properties.getName(i), var::null, + undoManager->perform (new SetPropertyAction (this, properties.getName(i), var(), properties.getValueAt(i), false, true)); } } @@ -230,7 +230,7 @@ public: return ValueTree (s); } - return ValueTree::invalid; + return ValueTree(); } ValueTree getOrCreateChildWithName (const Identifier typeToMatch, UndoManager* undoManager) @@ -257,7 +257,7 @@ public: return ValueTree (s); } - return ValueTree::invalid; + return ValueTree(); } bool isAChildOf (const SharedObject* const possibleParent) const noexcept @@ -846,17 +846,17 @@ ValueTree ValueTree::getChild (int index) const ValueTree ValueTree::getChildWithName (const Identifier type) const { - return object != nullptr ? object->getChildWithName (type) : ValueTree::invalid; + return object != nullptr ? object->getChildWithName (type) : ValueTree(); } ValueTree ValueTree::getOrCreateChildWithName (const Identifier type, UndoManager* undoManager) { - return object != nullptr ? object->getOrCreateChildWithName (type, undoManager) : ValueTree::invalid; + return object != nullptr ? object->getOrCreateChildWithName (type, undoManager) : ValueTree(); } ValueTree ValueTree::getChildWithProperty (const Identifier propertyName, const var& propertyValue) const { - return object != nullptr ? object->getChildWithProperty (propertyName, propertyValue) : ValueTree::invalid; + return object != nullptr ? object->getChildWithProperty (propertyName, propertyValue) : ValueTree(); } bool ValueTree::isAChildOf (const ValueTree& possibleParent) const @@ -976,7 +976,7 @@ ValueTree ValueTree::readFromStream (InputStream& input) const String type (input.readString()); if (type.isEmpty()) - return ValueTree::invalid; + return ValueTree(); ValueTree v (type); diff --git a/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp b/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp index f3e62c7e44..97e9482737 100644 --- a/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp +++ b/modules/juce_gui_basics/filebrowser/juce_DirectoryContentsList.cpp @@ -136,7 +136,7 @@ File DirectoryContentsList::getFile (const int index) const if (const FileInfo* const info = files [index]) return root.getChildFile (info->filename); - return File::nonexistent; + return File(); } bool DirectoryContentsList::contains (const File& targetFile) const diff --git a/modules/juce_gui_basics/widgets/juce_ListBox.cpp b/modules/juce_gui_basics/widgets/juce_ListBox.cpp index acc378bf28..5c2dddb49a 100644 --- a/modules/juce_gui_basics/widgets/juce_ListBox.cpp +++ b/modules/juce_gui_basics/widgets/juce_ListBox.cpp @@ -952,6 +952,6 @@ void ListBoxModel::selectedRowsChanged (int) {} void ListBoxModel::deleteKeyPressed (int) {} void ListBoxModel::returnKeyPressed (int) {} void ListBoxModel::listWasScrolled() {} -var ListBoxModel::getDragSourceDescription (const SparseSet&) { return var::null; } +var ListBoxModel::getDragSourceDescription (const SparseSet&) { return var(); } String ListBoxModel::getTooltipForRow (int) { return String::empty; } MouseCursor ListBoxModel::getMouseCursorForRow (int) { return MouseCursor::NormalCursor; } diff --git a/modules/juce_gui_basics/widgets/juce_TableListBox.cpp b/modules/juce_gui_basics/widgets/juce_TableListBox.cpp index 0b49d1cc73..3e2df4d2ee 100644 --- a/modules/juce_gui_basics/widgets/juce_TableListBox.cpp +++ b/modules/juce_gui_basics/widgets/juce_TableListBox.cpp @@ -466,7 +466,7 @@ void TableListBoxModel::returnKeyPressed (int) {} void TableListBoxModel::listWasScrolled() {} String TableListBoxModel::getCellTooltip (int /*rowNumber*/, int /*columnId*/) { return String::empty; } -var TableListBoxModel::getDragSourceDescription (const SparseSet&) { return var::null; } +var TableListBoxModel::getDragSourceDescription (const SparseSet&) { return var(); } Component* TableListBoxModel::refreshComponentForCell (int, int, bool, Component* existingComponentToUpdate) { diff --git a/modules/juce_gui_basics/widgets/juce_TreeView.cpp b/modules/juce_gui_basics/widgets/juce_TreeView.cpp index 12c95afc78..097ea89615 100644 --- a/modules/juce_gui_basics/widgets/juce_TreeView.cpp +++ b/modules/juce_gui_basics/widgets/juce_TreeView.cpp @@ -1371,7 +1371,7 @@ String TreeViewItem::getTooltip() var TreeViewItem::getDragSourceDescription() { - return var::null; + return var(); } bool TreeViewItem::isInterestedInFileDrag (const StringArray&)