From 6e509f9167fe2dca766e35ab3e4443865cadd25d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sami=20Kalliom=C3=A4ki?= Date: Wed, 13 Jan 2021 15:12:34 +0100 Subject: [PATCH] Handle case createShader throws an exception. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ensures the state of the class remains correct even if an unhandled exception is thrown from this method. Bug: b/176214704 Change-Id: I94504bb8aa4bd2dba45d116d5fa13da070a3b60f Reviewed-on: https://webrtc-review.googlesource.com/c/src/+/201621 Reviewed-by: Xavier Lepaul‎ Commit-Queue: Sami Kalliomäki Cr-Commit-Position: refs/heads/master@{#32963} --- sdk/android/src/java/org/webrtc/GlGenericDrawer.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/sdk/android/src/java/org/webrtc/GlGenericDrawer.java b/sdk/android/src/java/org/webrtc/GlGenericDrawer.java index 92b4245499..0e9718ea0b 100644 --- a/sdk/android/src/java/org/webrtc/GlGenericDrawer.java +++ b/sdk/android/src/java/org/webrtc/GlGenericDrawer.java @@ -219,11 +219,14 @@ class GlGenericDrawer implements RendererCommon.GlDrawer { shader = currentShader; } else { // Allocate new shader. - currentShaderType = shaderType; + currentShaderType = null; if (currentShader != null) { currentShader.release(); + currentShader = null; } + shader = createShader(shaderType); + currentShaderType = shaderType; currentShader = shader; shader.useProgram();