From c737b3459535ce43c3f658a6a6cd2a14aba99254 Mon Sep 17 00:00:00 2001 From: Artem Bochkarev Date: Sat, 6 Apr 2019 17:46:54 +0700 Subject: [PATCH] fixed: JBR-1347 Instaneous exit on using Alt-Enter to add an import automatically (MenuData::HandleGetNamedAccessibleAttribute) add extra npe checks --- bin/mac/libnst64.dylib | Bin 63688 -> 63688 bytes native/MacTouchBar/src/Scrubber.m | 10 +++++++++- .../src/com/intellij/ui/mac/touchbar/NST.java | 14 +++++++++++--- 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/bin/mac/libnst64.dylib b/bin/mac/libnst64.dylib index 24716823755a8fb35f0112faab358e6aa83c1d6c..56cba80105e8added522f04d7a17db29feac1d16 100755 GIT binary patch delta 13505 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 items, int itemsCount) { final Memory mem = _packItems(items, 0, itemsCount); - final ID scrubberNativePeer = ourNSTLibrary.createScrubber(uid, itemWidth, delegate, updater, mem, (int)mem.size()); // called from AppKit, uses per-event autorelease-pool + final ID scrubberNativePeer = ourNSTLibrary.createScrubber(uid, itemWidth, delegate, updater, mem, mem == null ? 0 : (int)mem.size()); // called from AppKit, uses per-event autorelease-pool return scrubberNativePeer; } @@ -206,7 +206,7 @@ public class NST { static void appendScrubberItems(ID scrubObj, List items, int fromIndex, int itemsCount) { final Memory mem = _packItems(items, fromIndex, itemsCount); - ourNSTLibrary.appendScrubberItems(scrubObj, mem, (int)mem.size()); // called from AppKit, uses per-event autorelease-pool + ourNSTLibrary.appendScrubberItems(scrubObj, mem, mem == null ? 0 : (int)mem.size()); // called from AppKit, uses per-event autorelease-pool } public static void enableScrubberItem(ID scrubObj, Collection indices, boolean enabled) { if (indices == null || indices.isEmpty()) @@ -222,8 +222,16 @@ public class NST { } private static @Nullable Memory _packItems(List items, int fromIndex, int itemsCount) { - if (items == null) + if (items == null || itemsCount <= 0) return null; + if (fromIndex < 0) { + LOG.error("_packItems: fromIndex < 0 (" + fromIndex + ")"); + return null; + } + if (fromIndex + itemsCount > items.size()) { + LOG.error("_packItems: fromIndex + itemsCount > items.size() (" + fromIndex + ", " + itemsCount + ", " + items.size() + ")"); + return null; + } // 1. calculate size int byteCount = 4;