Changeset 211362 in webkit
- Timestamp:
- Jan 30, 2017 4:07:15 AM (7 years ago)
- Location:
- trunk/Source/WebKit/mac
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebKit/mac/ChangeLog
r211355 r211362 1 2017-01-30 Andreas Kling <akling@apple.com> 2 3 [macOS] WebHTMLView has an internal retain cycle with its flagsChangedEventMonitor. 4 <https://webkit.org/b/167580> 5 6 Reviewed by Antti Koivisto. 7 8 Avoid the implicit strong capture of self by keeping it in a __block variable. 9 Also add code to dealloc to unregister the event monitor, since it will otherwise leak. 10 This fixes huge WebHTMLView leaks seen on the leaks bot. 11 12 * WebView/WebHTMLView.mm: 13 (-[WebHTMLViewPrivate dealloc]): 14 (-[WebHTMLView viewDidMoveToWindow]): 15 1 16 2017-01-29 Andy Estes <aestes@apple.com> 2 17 -
trunk/Source/WebKit/mac/WebView/WebHTMLView.mm
r211192 r211362 1067 1067 if (promisedDragTIFFDataSource) 1068 1068 promisedDragTIFFDataSource->removeClient(promisedDataClient()); 1069 1070 if (flagsChangedEventMonitor) { 1071 [NSEvent removeMonitor:flagsChangedEventMonitor]; 1072 flagsChangedEventMonitor = nil; 1073 } 1069 1074 #endif 1070 1075 … … 3505 3510 #if !PLATFORM(IOS) 3506 3511 if (!_private->flagsChangedEventMonitor) { 3512 __block WebHTMLView *weakSelf = self; 3507 3513 _private->flagsChangedEventMonitor = [NSEvent addLocalMonitorForEventsMatchingMask:NSEventMaskFlagsChanged handler:^(NSEvent *flagsChangedEvent) { 3508 [ self _postFakeMouseMovedEventForFlagsChangedEvent:flagsChangedEvent];3514 [weakSelf _postFakeMouseMovedEventForFlagsChangedEvent:flagsChangedEvent]; 3509 3515 return flagsChangedEvent; 3510 3516 }];
Note: See TracChangeset
for help on using the changeset viewer.