Changeset 171149 in webkit
- Timestamp:
- Jul 16, 2014 12:10:22 PM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r171148 r171149 1 2014-07-16 Jer Noble <jer.noble@apple.com> 2 3 REGRESSION(r171069) 75% repro crash in WebCore::AudioHardwareListenerMac::processIsRunningChanged() 4 https://bugs.webkit.org/show_bug.cgi?id=134986 5 6 Reviewed by Eric Carlson. 7 8 Add a WeakPtrFactory to AudioHardwareListenerMac, so that if CoreAudio calls our block after 9 being unregistered, we can bail early instead of calling into a deleted object. 10 11 * platform/audio/mac/AudioHardwareListenerMac.cpp: 12 (WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac): 13 * platform/audio/mac/AudioHardwareListenerMac.h: 14 1 15 2014-07-16 Jer Noble <jer.noble@apple.com> 2 16 -
trunk/Source/WebCore/platform/audio/mac/AudioHardwareListenerMac.cpp
r171069 r171149 122 122 AudioHardwareListenerMac::AudioHardwareListenerMac(Client& client) 123 123 : AudioHardwareListener(client) 124 , m_weakFactory(this) 124 125 { 125 126 setHardwareActivity(isAudioHardwareProcessRunning()); 126 127 setOutputDeviceSupportsLowPowerMode(currentDeviceSupportsLowPowerBufferSize()); 127 128 129 auto weakThis = m_weakFactory.createWeakPtr(); 128 130 m_block = Block_copy(^(UInt32 count, const AudioObjectPropertyAddress properties[]) { 129 propertyChanged(count, properties); 131 if (weakThis) 132 weakThis->propertyChanged(count, properties); 130 133 }); 131 134 -
trunk/Source/WebCore/platform/audio/mac/AudioHardwareListenerMac.h
r171069 r171149 28 28 29 29 #include "AudioHardwareListener.h" 30 #include <wtf/WeakPtr.h> 30 31 31 32 #if PLATFORM(MAC) … … 49 50 50 51 AudioObjectPropertyListenerBlock m_block; 52 WeakPtrFactory<AudioHardwareListenerMac> m_weakFactory; 51 53 }; 52 54
Note: See TracChangeset
for help on using the changeset viewer.