From e883f16a2d1cfd44b4f7b37a73245f8c8841bbf5 Mon Sep 17 00:00:00 2001 From: Artem Bochkarev Date: Wed, 25 Sep 2019 17:12:06 +0300 Subject: [PATCH] touchbar: make native code more exception-safe Scrubber item of touchbar can throw NSInternalInconsistencyException during items update. This is undocumented behaviour (so the reason is unknown) and it's better to suppress such exceptions now. fixed IDEA-223539 Crash on Alt+Enter GitOrigin-RevId: 7297e7f3eabb02d83d18558ff91052a7699387fd --- bin/mac/libnst64.dylib | Bin 68272 -> 68832 bytes native/MacTouchBar/src/Scrubber.m | 71 +++++++++++++++++------------- 2 files changed, 41 insertions(+), 30 deletions(-) diff --git a/bin/mac/libnst64.dylib b/bin/mac/libnst64.dylib index 90c4da12242744ba3b5f74a4a892db562842d832..6b26ab684f54473b564c6b9a028aaef9cea41f0d 100755 GIT binary patch literal 68832 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 literal 68272 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 D8$vpT diff --git a/native/MacTouchBar/src/Scrubber.m b/native/MacTouchBar/src/Scrubber.m index d2771850e070..b5384c1cc341 100644 --- a/native/MacTouchBar/src/Scrubber.m +++ b/native/MacTouchBar/src/Scrubber.m @@ -222,10 +222,17 @@ void updateScrubberItems(id scrubObj, void* packedItems, int byteCount, int from NSScrubberContainer *container = scrubObj; nstrace(@"scrubber [%@]: called updateScrubberItems", container.identifier); void (^doUpdate)() = ^{ - _fillCache(container.itemsCache, container.visibleItems, packedItems, byteCount, fromIndex); - if (packedItems != NULL) - free(packedItems); - _recalculatePositions(scrubObj); + @try { + _fillCache(container.itemsCache, container.visibleItems, packedItems, byteCount, fromIndex); + _recalculatePositions(scrubObj); + } + @catch (NSException *exception) { + nserror(@"%@", exception.reason); + } + @finally { + if (packedItems != NULL) + free(packedItems); + } }; if ([NSThread isMainThread]) { doUpdate(); @@ -277,32 +284,36 @@ void showScrubberItems(id scrubObj, void* itemIndices, int count, bool show, boo int * indices = itemIndices; dispatch_async(dispatch_get_main_queue(), ^{ - // 1. mark items - if (inverseOthers) { - for (int c = 0; c < container.itemsCache.count; ++c) { - ScrubberItem *itemData = [container.itemsCache objectAtIndex:c]; - if (itemData == nil) - continue; - itemData.visible = !show; - } - } - - if (indices != NULL) { - for (int c = 0; c < count; ++c) { - ScrubberItem *itemData = [container.itemsCache objectAtIndex:indices[c]]; - if (itemData == nil) { - nserror(@"scrubber [%@]: called showScrubberItems %d, but item-data at this index is null", container.identifier, indices[c]); - continue; - } - itemData.visible = show; - } - } - - // 2. recalc positions - _recalculatePositions(scrubObj); - - if (indices != NULL) - free(indices); + @try { + // 1. mark items + if (inverseOthers) { + for (int c = 0; c < container.itemsCache.count; ++c) { + ScrubberItem *itemData = [container.itemsCache objectAtIndex:c]; + if (itemData == nil) + continue; + itemData.visible = !show; + } + } + if (indices != NULL) { + for (int c = 0; c < count; ++c) { + ScrubberItem *itemData = [container.itemsCache objectAtIndex:indices[c]]; + if (itemData == nil) { + nserror(@"scrubber [%@]: called showScrubberItems %d, but item-data at this index is null", container.identifier, indices[c]); + continue; + } + itemData.visible = show; + } + } + // 2. recalc positions + _recalculatePositions(scrubObj); + } + @catch (NSException *exception) { + nserror(@"%@", exception.reason); + } + @finally { + if (indices != NULL) + free(indices); + } }); }