From 9fdb6cf255afc6523b1dca7b04681a5778354c07 Mon Sep 17 00:00:00 2001 From: magjed Date: Tue, 5 Apr 2016 06:08:06 -0700 Subject: [PATCH] Andoid EglBase: Detect failure to find EGL config BUG=b/27950559 Review URL: https://codereview.webrtc.org/1855953002 Cr-Commit-Position: refs/heads/master@{#12239} --- webrtc/api/java/android/org/webrtc/EglBase10.java | 9 ++++++++- webrtc/api/java/android/org/webrtc/EglBase14.java | 9 ++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/webrtc/api/java/android/org/webrtc/EglBase10.java b/webrtc/api/java/android/org/webrtc/EglBase10.java index fe2b73ee1c..70f9eb73a6 100644 --- a/webrtc/api/java/android/org/webrtc/EglBase10.java +++ b/webrtc/api/java/android/org/webrtc/EglBase10.java @@ -268,9 +268,16 @@ final class EglBase10 extends EglBase { int[] numConfigs = new int[1]; if (!egl.eglChooseConfig( eglDisplay, configAttributes, configs, configs.length, numConfigs)) { + throw new RuntimeException("eglChooseConfig failed"); + } + if (numConfigs[0] <= 0) { throw new RuntimeException("Unable to find any matching EGL config"); } - return configs[0]; + final EGLConfig eglConfig = configs[0]; + if (eglConfig == null) { + throw new RuntimeException("eglChooseConfig returned null"); + } + return eglConfig; } // Return an EGLConfig, or die trying. diff --git a/webrtc/api/java/android/org/webrtc/EglBase14.java b/webrtc/api/java/android/org/webrtc/EglBase14.java index 6ac61d062c..4329c36e75 100644 --- a/webrtc/api/java/android/org/webrtc/EglBase14.java +++ b/webrtc/api/java/android/org/webrtc/EglBase14.java @@ -228,9 +228,16 @@ public final class EglBase14 extends EglBase { int[] numConfigs = new int[1]; if (!EGL14.eglChooseConfig( eglDisplay, configAttributes, 0, configs, 0, configs.length, numConfigs, 0)) { + throw new RuntimeException("eglChooseConfig failed"); + } + if (numConfigs[0] <= 0) { throw new RuntimeException("Unable to find any matching EGL config"); } - return configs[0]; + final EGLConfig eglConfig = configs[0]; + if (eglConfig == null) { + throw new RuntimeException("eglChooseConfig returned null"); + } + return eglConfig; } // Return an EGLConfig, or die trying.