Handle case createShader throws an exception.

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‎ <xalep@webrtc.org>
Commit-Queue: Sami Kalliomäki <sakal@webrtc.org>
Cr-Commit-Position: refs/heads/master@{#32963}
This commit is contained in:
Sami Kalliomäki
2021-01-13 15:12:34 +01:00
committed by Commit Bot
parent 94324f2774
commit 6e509f9167

View File

@ -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();