From c7957d7d1eee8a778e1f22f72be80a7e93804683 Mon Sep 17 00:00:00 2001 From: Julian Storer Date: Mon, 4 Jan 2010 10:05:39 +0000 Subject: [PATCH] Clean-ups and small fix for plugin hosting classes. --- juce_amalgamated.cpp | 177 ++++++++---------- juce_amalgamated.h | 4 +- .../juce_ApplicationCommandTarget.cpp | 3 +- .../juce_ApplicationCommandTarget.h | 2 +- .../juce_AiffAudioFormat.cpp | 14 +- .../juce_FlacAudioFormat.cpp | 28 ++- .../juce_OggVorbisAudioFormat.cpp | 29 ++- .../juce_QuickTimeAudioFormat.cpp | 14 +- .../juce_WavAudioFormat.cpp | 14 +- .../formats/juce_AudioUnitPluginFormat.mm | 36 ++-- .../plugins/formats/juce_VSTPluginFormat.cpp | 8 +- src/containers/juce_ScopedPointer.h | 2 +- src/io/network/juce_URL.cpp | 13 +- src/native/mac/juce_mac_OpenGLComponent.mm | 9 +- 14 files changed, 147 insertions(+), 206 deletions(-) diff --git a/juce_amalgamated.cpp b/juce_amalgamated.cpp index 0a8d593ce7..b08e9a93b7 100644 --- a/juce_amalgamated.cpp +++ b/juce_amalgamated.cpp @@ -8440,15 +8440,12 @@ InputStream* URL::createInputStream (const bool usePostCommand, const String& extraHeaders, const int timeOutMs) const { - WebInputStream* wi = new WebInputStream (*this, usePostCommand, - progressCallback, progressCallbackContext, - extraHeaders, - timeOutMs); + ScopedPointer wi (new WebInputStream (*this, usePostCommand, + progressCallback, progressCallbackContext, + extraHeaders, + timeOutMs)); - if (wi->isError()) - deleteAndZero (wi); - - return wi; + return wi->isError() ? 0 : wi.release(); } bool URL::readEntireBinaryStream (MemoryBlock& destData, @@ -17594,13 +17591,12 @@ END_JUCE_NAMESPACE BEGIN_JUCE_NAMESPACE ApplicationCommandTarget::ApplicationCommandTarget() - : messageInvoker (0) { } ApplicationCommandTarget::~ApplicationCommandTarget() { - deleteAndZero (messageInvoker); + messageInvoker = 0; } bool ApplicationCommandTarget::tryToInvoke (const InvocationInfo& info, const bool async) @@ -19584,17 +19580,15 @@ bool AiffAudioFormat::canHandleFile (const File& f) AudioFormatReader* AiffAudioFormat::createReaderFor (InputStream* sourceStream, const bool deleteStreamIfOpeningFails) { - AiffAudioFormatReader* w = new AiffAudioFormatReader (sourceStream); + ScopedPointer w (new AiffAudioFormatReader (sourceStream)); - if (w->sampleRate == 0) - { - if (! deleteStreamIfOpeningFails) - w->input = 0; + if (w->sampleRate != 0) + return w.release(); - deleteAndZero (w); - } + if (! deleteStreamIfOpeningFails) + w->input = 0; - return w; + return 0; } AudioFormatWriter* AiffAudioFormat::createWriterFor (OutputStream* out, @@ -21557,17 +21551,15 @@ bool QuickTimeAudioFormat::canDoMono() AudioFormatReader* QuickTimeAudioFormat::createReaderFor (InputStream* sourceStream, const bool deleteStreamIfOpeningFails) { - QTAudioReader* r = new QTAudioReader (sourceStream, 0); + ScopedPointer r (new QTAudioReader (sourceStream, 0)); - if (! r->ok) - { - if (! deleteStreamIfOpeningFails) - r->input = 0; + if (r->ok) + return r.release(); - deleteAndZero (r); - } + if (! deleteStreamIfOpeningFails) + r->input = 0; - return r; + return 0; } AudioFormatWriter* QuickTimeAudioFormat::createWriterFor (OutputStream* /*streamToWriteTo*/, @@ -22302,17 +22294,15 @@ bool WavAudioFormat::canDoMono() AudioFormatReader* WavAudioFormat::createReaderFor (InputStream* sourceStream, const bool deleteStreamIfOpeningFails) { - WavAudioFormatReader* r = new WavAudioFormatReader (sourceStream); + ScopedPointer r (new WavAudioFormatReader (sourceStream)); - if (r->sampleRate == 0) - { - if (! deleteStreamIfOpeningFails) - r->input = 0; + if (r->sampleRate != 0) + return r.release(); - deleteAndZero (r); - } + if (! deleteStreamIfOpeningFails) + r->input = 0; - return r; + return 0; } AudioFormatWriter* WavAudioFormat::createWriterFor (OutputStream* out, @@ -30939,10 +30929,10 @@ private: AudioProcessorEditor* AudioUnitPluginInstance::createEditor() { - AudioProcessorEditor* w = new AudioUnitPluginWindowCocoa (*this, false); + ScopedPointer w (new AudioUnitPluginWindowCocoa (*this, false)); if (! ((AudioUnitPluginWindowCocoa*) w)->isValid()) - deleteAndZero (w); + w = 0; #if JUCE_SUPPORT_CARBON if (w == 0) @@ -30950,14 +30940,14 @@ AudioProcessorEditor* AudioUnitPluginInstance::createEditor() w = new AudioUnitPluginWindowCarbon (*this); if (! ((AudioUnitPluginWindowCarbon*) w)->isValid()) - deleteAndZero (w); + w = 0; } #endif if (w == 0) w = new AudioUnitPluginWindowCocoa (*this, true); // use AUGenericView as a fallback - return w; + return w.release(); } const String AudioUnitPluginInstance::getCategory() const @@ -31252,43 +31242,37 @@ void AudioUnitPluginFormat::findAllTypesForFile (OwnedArray & desc.fileOrIdentifier = fileOrIdentifier; desc.uid = 0; - AudioUnitPluginInstance* instance = dynamic_cast (createInstanceFromDescription (desc)); - - if (instance == 0) - return; - try { - instance->fillInPluginDescription (desc); - results.add (new PluginDescription (desc)); + ScopedPointer createdInstance (createInstanceFromDescription (desc)); + AudioUnitPluginInstance* const auInstance = dynamic_cast ((AudioPluginInstance*) createdInstance); + + if (auInstance != 0) + { + auInstance->fillInPluginDescription (desc); + results.add (new PluginDescription (desc)); + } } catch (...) { // crashed while loading... } - - deleteAndZero (instance); } AudioPluginInstance* AudioUnitPluginFormat::createInstanceFromDescription (const PluginDescription& desc) { - AudioUnitPluginInstance* result = 0; - if (fileMightContainThisPluginType (desc.fileOrIdentifier)) { - result = new AudioUnitPluginInstance (desc.fileOrIdentifier); + ScopedPointer result (new AudioUnitPluginInstance (desc.fileOrIdentifier)); if (result->audioUnit != 0) { result->initialise(); - } - else - { - deleteAndZero (result); + return result.release(); } } - return result; + return 0; } const StringArray AudioUnitPluginFormat::searchPathsForPlugins (const FileSearchPath& /*directoriesToSearch*/, @@ -31846,15 +31830,15 @@ public: log ("Attempting to load VST: " + file.getFullPathName()); - ModuleHandle* m = new ModuleHandle (file); + ScopedPointer m (new ModuleHandle (file)); if (! m->open()) - deleteAndZero (m); + m = 0; --insideVSTCallback; _fpreset(); // (doesn't do any harm) - return m; + return m.release(); } ModuleHandle (const File& file_) @@ -34350,7 +34334,7 @@ AudioPluginInstance* VSTPluginFormat::createInstanceFromDescription (const Plugi if (result->effect != 0) { - result->effect->resvd2 = (VstIntPtr) (pointer_sized_int) result; + result->effect->resvd2 = (VstIntPtr) (pointer_sized_int) (VSTPluginInstance*) result; result->initialise(); } else @@ -125629,17 +125613,15 @@ bool FlacAudioFormat::isCompressed() AudioFormatReader* FlacAudioFormat::createReaderFor (InputStream* in, const bool deleteStreamIfOpeningFails) { - FlacReader* r = new FlacReader (in); + ScopedPointer r (new FlacReader (in)); - if (r->sampleRate == 0) - { - if (! deleteStreamIfOpeningFails) - r->input = 0; + if (r->sampleRate != 0) + return r.release(); - deleteAndZero (r); - } + if (! deleteStreamIfOpeningFails) + r->input = 0; - return r; + return 0; } AudioFormatWriter* FlacAudioFormat::createWriterFor (OutputStream* out, @@ -125651,15 +125633,13 @@ AudioFormatWriter* FlacAudioFormat::createWriterFor (OutputStream* out, { if (getPossibleBitDepths().contains (bitsPerSample)) { - FlacWriter* w = new FlacWriter (out, - sampleRate, - numberOfChannels, - bitsPerSample); + ScopedPointer w (new FlacWriter (out, + sampleRate, + numberOfChannels, + bitsPerSample)); - if (! w->ok) - deleteAndZero (w); - - return w; + if (w->ok) + return w.release(); } return 0; @@ -184577,17 +184557,15 @@ bool OggVorbisAudioFormat::canDoMono() AudioFormatReader* OggVorbisAudioFormat::createReaderFor (InputStream* in, const bool deleteStreamIfOpeningFails) { - OggReader* r = new OggReader (in); + ScopedPointer r (new OggReader (in)); - if (r->sampleRate == 0) - { - if (! deleteStreamIfOpeningFails) - r->input = 0; + if (r->sampleRate != 0) + return r.release(); - deleteAndZero (r); - } + if (! deleteStreamIfOpeningFails) + r->input = 0; - return r; + return 0; } AudioFormatWriter* OggVorbisAudioFormat::createWriterFor (OutputStream* out, @@ -184597,16 +184575,13 @@ AudioFormatWriter* OggVorbisAudioFormat::createWriterFor (OutputStream* out, const StringPairArray& /*metadataValues*/, int qualityOptionIndex) { - OggWriter* w = new OggWriter (out, - sampleRate, - numChannels, - bitsPerSample, - qualityOptionIndex); + ScopedPointer w (new OggWriter (out, + sampleRate, + numChannels, + bitsPerSample, + qualityOptionIndex)); - if (! w->ok) - deleteAndZero (w); - - return w; + return w->ok ? w.release() : 0; } bool OggVorbisAudioFormat::isCompressed() @@ -264032,13 +264007,10 @@ OpenGLContext* OpenGLContext::createContextForWindow (Component* const component const OpenGLPixelFormat& pixelFormat, const OpenGLContext* const contextToShareWith) { - WindowedGLContext* c = new WindowedGLContext (component, pixelFormat, - contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0); + ScopedPointer c (new WindowedGLContext (component, pixelFormat, + contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0)); - if (c->renderContext == 0) - deleteAndZero (c); - - return c; + return (c->renderContext != 0) ? c.release() : 0; } void* OpenGLComponent::getNativeWindowHandle() const @@ -269259,13 +269231,10 @@ OpenGLContext* OpenGLContext::createContextForWindow (Component* const component const OpenGLPixelFormat& pixelFormat, const OpenGLContext* const contextToShareWith) { - WindowedGLContext* c = new WindowedGLContext (component, pixelFormat, - contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0); + ScopedPointer c (new WindowedGLContext (component, pixelFormat, + contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0)); - if (c->renderContext == 0) - deleteAndZero (c); - - return c; + return (c->renderContext != 0) ? c.release() : 0; } void* OpenGLComponent::getNativeWindowHandle() const diff --git a/juce_amalgamated.h b/juce_amalgamated.h index b06af5764b..292abd6857 100644 --- a/juce_amalgamated.h +++ b/juce_amalgamated.h @@ -5037,7 +5037,7 @@ public: /** Returns the object that this ScopedPointer refers to. */ - inline ObjectType& operator*() const { return *object; } + inline ObjectType& operator*() const { return *object; } /** Lets you access methods and properties of the object that this ScopedPointer refers to. */ inline ObjectType* operator->() const { return object; } @@ -25313,7 +25313,7 @@ private: const CommandTargetMessageInvoker& operator= (const CommandTargetMessageInvoker&); }; - CommandTargetMessageInvoker* messageInvoker; + ScopedPointer messageInvoker; friend class CommandTargetMessageInvoker; bool tryToInvoke (const InvocationInfo& info, const bool async); diff --git a/src/application/juce_ApplicationCommandTarget.cpp b/src/application/juce_ApplicationCommandTarget.cpp index 58d96756ef..810dfd2e62 100644 --- a/src/application/juce_ApplicationCommandTarget.cpp +++ b/src/application/juce_ApplicationCommandTarget.cpp @@ -33,13 +33,12 @@ BEGIN_JUCE_NAMESPACE //============================================================================== ApplicationCommandTarget::ApplicationCommandTarget() - : messageInvoker (0) { } ApplicationCommandTarget::~ApplicationCommandTarget() { - deleteAndZero (messageInvoker); + messageInvoker = 0; } //============================================================================== diff --git a/src/application/juce_ApplicationCommandTarget.h b/src/application/juce_ApplicationCommandTarget.h index fbcf837dde..39c80ece60 100644 --- a/src/application/juce_ApplicationCommandTarget.h +++ b/src/application/juce_ApplicationCommandTarget.h @@ -254,7 +254,7 @@ private: const CommandTargetMessageInvoker& operator= (const CommandTargetMessageInvoker&); }; - CommandTargetMessageInvoker* messageInvoker; + ScopedPointer messageInvoker; friend class CommandTargetMessageInvoker; bool tryToInvoke (const InvocationInfo& info, const bool async); diff --git a/src/audio/audio_file_formats/juce_AiffAudioFormat.cpp b/src/audio/audio_file_formats/juce_AiffAudioFormat.cpp index c6888ee894..26dfe7a7d4 100644 --- a/src/audio/audio_file_formats/juce_AiffAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_AiffAudioFormat.cpp @@ -788,17 +788,15 @@ bool AiffAudioFormat::canHandleFile (const File& f) AudioFormatReader* AiffAudioFormat::createReaderFor (InputStream* sourceStream, const bool deleteStreamIfOpeningFails) { - AiffAudioFormatReader* w = new AiffAudioFormatReader (sourceStream); + ScopedPointer w (new AiffAudioFormatReader (sourceStream)); - if (w->sampleRate == 0) - { - if (! deleteStreamIfOpeningFails) - w->input = 0; + if (w->sampleRate != 0) + return w.release(); - deleteAndZero (w); - } + if (! deleteStreamIfOpeningFails) + w->input = 0; - return w; + return 0; } AudioFormatWriter* AiffAudioFormat::createWriterFor (OutputStream* out, diff --git a/src/audio/audio_file_formats/juce_FlacAudioFormat.cpp b/src/audio/audio_file_formats/juce_FlacAudioFormat.cpp index f9cbdf893c..08bd64ff3c 100644 --- a/src/audio/audio_file_formats/juce_FlacAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_FlacAudioFormat.cpp @@ -516,17 +516,15 @@ bool FlacAudioFormat::isCompressed() AudioFormatReader* FlacAudioFormat::createReaderFor (InputStream* in, const bool deleteStreamIfOpeningFails) { - FlacReader* r = new FlacReader (in); + ScopedPointer r (new FlacReader (in)); - if (r->sampleRate == 0) - { - if (! deleteStreamIfOpeningFails) - r->input = 0; + if (r->sampleRate != 0) + return r.release(); - deleteAndZero (r); - } + if (! deleteStreamIfOpeningFails) + r->input = 0; - return r; + return 0; } AudioFormatWriter* FlacAudioFormat::createWriterFor (OutputStream* out, @@ -538,15 +536,13 @@ AudioFormatWriter* FlacAudioFormat::createWriterFor (OutputStream* out, { if (getPossibleBitDepths().contains (bitsPerSample)) { - FlacWriter* w = new FlacWriter (out, - sampleRate, - numberOfChannels, - bitsPerSample); + ScopedPointer w (new FlacWriter (out, + sampleRate, + numberOfChannels, + bitsPerSample)); - if (! w->ok) - deleteAndZero (w); - - return w; + if (w->ok) + return w.release(); } return 0; diff --git a/src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp b/src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp index 4dac473d7e..68caab5d19 100644 --- a/src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_OggVorbisAudioFormat.cpp @@ -426,17 +426,15 @@ bool OggVorbisAudioFormat::canDoMono() AudioFormatReader* OggVorbisAudioFormat::createReaderFor (InputStream* in, const bool deleteStreamIfOpeningFails) { - OggReader* r = new OggReader (in); + ScopedPointer r (new OggReader (in)); - if (r->sampleRate == 0) - { - if (! deleteStreamIfOpeningFails) - r->input = 0; + if (r->sampleRate != 0) + return r.release(); - deleteAndZero (r); - } + if (! deleteStreamIfOpeningFails) + r->input = 0; - return r; + return 0; } AudioFormatWriter* OggVorbisAudioFormat::createWriterFor (OutputStream* out, @@ -446,16 +444,13 @@ AudioFormatWriter* OggVorbisAudioFormat::createWriterFor (OutputStream* out, const StringPairArray& /*metadataValues*/, int qualityOptionIndex) { - OggWriter* w = new OggWriter (out, - sampleRate, - numChannels, - bitsPerSample, - qualityOptionIndex); + ScopedPointer w (new OggWriter (out, + sampleRate, + numChannels, + bitsPerSample, + qualityOptionIndex)); - if (! w->ok) - deleteAndZero (w); - - return w; + return w->ok ? w.release() : 0; } bool OggVorbisAudioFormat::isCompressed() diff --git a/src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp b/src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp index b99fc0c43f..d31889bac7 100644 --- a/src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_QuickTimeAudioFormat.cpp @@ -373,17 +373,15 @@ bool QuickTimeAudioFormat::canDoMono() AudioFormatReader* QuickTimeAudioFormat::createReaderFor (InputStream* sourceStream, const bool deleteStreamIfOpeningFails) { - QTAudioReader* r = new QTAudioReader (sourceStream, 0); + ScopedPointer r (new QTAudioReader (sourceStream, 0)); - if (! r->ok) - { - if (! deleteStreamIfOpeningFails) - r->input = 0; + if (r->ok) + return r.release(); - deleteAndZero (r); - } + if (! deleteStreamIfOpeningFails) + r->input = 0; - return r; + return 0; } AudioFormatWriter* QuickTimeAudioFormat::createWriterFor (OutputStream* /*streamToWriteTo*/, diff --git a/src/audio/audio_file_formats/juce_WavAudioFormat.cpp b/src/audio/audio_file_formats/juce_WavAudioFormat.cpp index 0446e65160..d593197123 100644 --- a/src/audio/audio_file_formats/juce_WavAudioFormat.cpp +++ b/src/audio/audio_file_formats/juce_WavAudioFormat.cpp @@ -759,17 +759,15 @@ bool WavAudioFormat::canDoMono() AudioFormatReader* WavAudioFormat::createReaderFor (InputStream* sourceStream, const bool deleteStreamIfOpeningFails) { - WavAudioFormatReader* r = new WavAudioFormatReader (sourceStream); + ScopedPointer r (new WavAudioFormatReader (sourceStream)); - if (r->sampleRate == 0) - { - if (! deleteStreamIfOpeningFails) - r->input = 0; + if (r->sampleRate != 0) + return r.release(); - deleteAndZero (r); - } + if (! deleteStreamIfOpeningFails) + r->input = 0; - return r; + return 0; } AudioFormatWriter* WavAudioFormat::createWriterFor (OutputStream* out, diff --git a/src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm b/src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm index fe0f73caba..9e001f3b3b 100644 --- a/src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm +++ b/src/audio/plugins/formats/juce_AudioUnitPluginFormat.mm @@ -1093,10 +1093,10 @@ private: //============================================================================== AudioProcessorEditor* AudioUnitPluginInstance::createEditor() { - AudioProcessorEditor* w = new AudioUnitPluginWindowCocoa (*this, false); + ScopedPointer w (new AudioUnitPluginWindowCocoa (*this, false)); if (! ((AudioUnitPluginWindowCocoa*) w)->isValid()) - deleteAndZero (w); + w = 0; #if JUCE_SUPPORT_CARBON if (w == 0) @@ -1104,14 +1104,14 @@ AudioProcessorEditor* AudioUnitPluginInstance::createEditor() w = new AudioUnitPluginWindowCarbon (*this); if (! ((AudioUnitPluginWindowCarbon*) w)->isValid()) - deleteAndZero (w); + w = 0; } #endif if (w == 0) w = new AudioUnitPluginWindowCocoa (*this, true); // use AUGenericView as a fallback - return w; + return w.release(); } @@ -1415,43 +1415,37 @@ void AudioUnitPluginFormat::findAllTypesForFile (OwnedArray & desc.fileOrIdentifier = fileOrIdentifier; desc.uid = 0; - AudioUnitPluginInstance* instance = dynamic_cast (createInstanceFromDescription (desc)); - - if (instance == 0) - return; - try { - instance->fillInPluginDescription (desc); - results.add (new PluginDescription (desc)); + ScopedPointer createdInstance (createInstanceFromDescription (desc)); + AudioUnitPluginInstance* const auInstance = dynamic_cast ((AudioPluginInstance*) createdInstance); + + if (auInstance != 0) + { + auInstance->fillInPluginDescription (desc); + results.add (new PluginDescription (desc)); + } } catch (...) { // crashed while loading... } - - deleteAndZero (instance); } AudioPluginInstance* AudioUnitPluginFormat::createInstanceFromDescription (const PluginDescription& desc) { - AudioUnitPluginInstance* result = 0; - if (fileMightContainThisPluginType (desc.fileOrIdentifier)) { - result = new AudioUnitPluginInstance (desc.fileOrIdentifier); + ScopedPointer result (new AudioUnitPluginInstance (desc.fileOrIdentifier)); if (result->audioUnit != 0) { result->initialise(); - } - else - { - deleteAndZero (result); + return result.release(); } } - return result; + return 0; } const StringArray AudioUnitPluginFormat::searchPathsForPlugins (const FileSearchPath& /*directoriesToSearch*/, diff --git a/src/audio/plugins/formats/juce_VSTPluginFormat.cpp b/src/audio/plugins/formats/juce_VSTPluginFormat.cpp index 019dc26835..9de4c10149 100644 --- a/src/audio/plugins/formats/juce_VSTPluginFormat.cpp +++ b/src/audio/plugins/formats/juce_VSTPluginFormat.cpp @@ -365,15 +365,15 @@ public: log ("Attempting to load VST: " + file.getFullPathName()); - ModuleHandle* m = new ModuleHandle (file); + ScopedPointer m (new ModuleHandle (file)); if (! m->open()) - deleteAndZero (m); + m = 0; --insideVSTCallback; _fpreset(); // (doesn't do any harm) - return m; + return m.release(); } //============================================================================== @@ -2915,7 +2915,7 @@ AudioPluginInstance* VSTPluginFormat::createInstanceFromDescription (const Plugi if (result->effect != 0) { - result->effect->resvd2 = (VstIntPtr) (pointer_sized_int) result; + result->effect->resvd2 = (VstIntPtr) (pointer_sized_int) (VSTPluginInstance*) result; result->initialise(); } else diff --git a/src/containers/juce_ScopedPointer.h b/src/containers/juce_ScopedPointer.h index c48c701710..8b808e899d 100644 --- a/src/containers/juce_ScopedPointer.h +++ b/src/containers/juce_ScopedPointer.h @@ -129,7 +129,7 @@ public: /** Returns the object that this ScopedPointer refers to. */ - inline ObjectType& operator*() const { return *object; } + inline ObjectType& operator*() const { return *object; } /** Lets you access methods and properties of the object that this ScopedPointer refers to. */ inline ObjectType* operator->() const { return object; } diff --git a/src/io/network/juce_URL.cpp b/src/io/network/juce_URL.cpp index de096a2605..9ce5793c86 100644 --- a/src/io/network/juce_URL.cpp +++ b/src/io/network/juce_URL.cpp @@ -452,15 +452,12 @@ InputStream* URL::createInputStream (const bool usePostCommand, const String& extraHeaders, const int timeOutMs) const { - WebInputStream* wi = new WebInputStream (*this, usePostCommand, - progressCallback, progressCallbackContext, - extraHeaders, - timeOutMs); + ScopedPointer wi (new WebInputStream (*this, usePostCommand, + progressCallback, progressCallbackContext, + extraHeaders, + timeOutMs)); - if (wi->isError()) - deleteAndZero (wi); - - return wi; + return wi->isError() ? 0 : wi.release(); } //============================================================================== diff --git a/src/native/mac/juce_mac_OpenGLComponent.mm b/src/native/mac/juce_mac_OpenGLComponent.mm index 641b660037..8e979b1fec 100644 --- a/src/native/mac/juce_mac_OpenGLComponent.mm +++ b/src/native/mac/juce_mac_OpenGLComponent.mm @@ -262,13 +262,10 @@ OpenGLContext* OpenGLContext::createContextForWindow (Component* const component const OpenGLPixelFormat& pixelFormat, const OpenGLContext* const contextToShareWith) { - WindowedGLContext* c = new WindowedGLContext (component, pixelFormat, - contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0); + ScopedPointer c (new WindowedGLContext (component, pixelFormat, + contextToShareWith != 0 ? (NSOpenGLContext*) contextToShareWith->getRawContext() : 0)); - if (c->renderContext == 0) - deleteAndZero (c); - - return c; + return (c->renderContext != 0) ? c.release() : 0; } void* OpenGLComponent::getNativeWindowHandle() const