From 9712f4f4c68c6be1b4444d63d51fa3f33cfb1753 Mon Sep 17 00:00:00 2001 From: Robert Bartlensky Date: Fri, 24 Aug 2018 15:32:18 +0000 Subject: [PATCH] Bug 1477707: Fix all infer errors in GeckoView. r=jchen This fixes some errors reported by infer on GeckoView that are not related to threading. Differential Revision: https://phabricator.services.mozilla.com/D3787 --HG-- extra : moz-landing-system : lando --- .../src/main/java/org/mozilla/gecko/GeckoProfile.java | 3 +++ .../java/org/mozilla/gecko/media/GeckoHLSDemuxerWrapper.java | 4 +++- .../java/org/mozilla/gecko/process/GeckoProcessManager.java | 5 ++++- .../java/org/mozilla/geckoview/GeckoInputConnection.java | 5 ++++- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoProfile.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoProfile.java index 56cfe63b7019..b30c303b03e5 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoProfile.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/GeckoProfile.java @@ -802,6 +802,9 @@ public final class GeckoProfile { final INIParser parser = GeckoProfileDirectories.getProfilesINI(mMozillaDir); final Hashtable sections = parser.getSections(); + if (sections == null) { + return false; + } for (Enumeration e = sections.elements(); e.hasMoreElements();) { final INISection section = e.nextElement(); String name = section.getStringProperty("Name"); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHLSDemuxerWrapper.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHLSDemuxerWrapper.java index d8c5e31f599e..43487ba28f59 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHLSDemuxerWrapper.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/media/GeckoHLSDemuxerWrapper.java @@ -119,7 +119,9 @@ public final class GeckoHLSDemuxerWrapper { assertTrue(callback != null); try { mPlayer = GeckoPlayerFactory.getPlayer(id); - mPlayer.addDemuxerWrapperCallbackListener(callback); + if (mPlayer != null) { + mPlayer.addDemuxerWrapperCallbackListener(callback); + } } catch (Exception e) { Log.e(LOGTAG, "Constructing GeckoHLSDemuxerWrapper ... error", e); callback.onError(BaseHlsPlayer.DemuxerError.UNKNOWN.code()); diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoProcessManager.java b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoProcessManager.java index 47c22c6f7f75..975a9e4b1859 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoProcessManager.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/gecko/process/GeckoProcessManager.java @@ -175,7 +175,10 @@ public final class GeckoProcessManager extends IProcessManager.Stub { public void crashChild() { try { - mConnections.get("tab").bind().crash(); + IChildProcess childProcess = mConnections.get("tab").bind(); + if (childProcess != null) { + childProcess.crash(); + } } catch (RemoteException e) { } } diff --git a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoInputConnection.java b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoInputConnection.java index 4c01c735f5d4..efb35a5dfa7c 100644 --- a/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoInputConnection.java +++ b/mobile/android/geckoview/src/main/java/org/mozilla/geckoview/GeckoInputConnection.java @@ -210,7 +210,10 @@ import java.lang.reflect.Proxy; } break; case android.R.id.paste: - commitText(Clipboard.getText(view.getContext()), 1); + String text = Clipboard.getText(view.getContext()); + if (text != null) { + commitText(text, 1); + } break; case android.R.id.copy: // Copy the current selection or the empty string if nothing is selected.