aboutsummaryrefslogtreecommitdiffhomepage
path: root/src
diff options
context:
space:
mode:
authorGravatar Brian Salomon <bsalomon@google.com>2018-06-01 14:42:53 -0400
committerGravatar Skia Commit-Bot <skia-commit-bot@chromium.org>2018-06-04 15:47:29 +0000
commit7c93472b079a99a33d6d4d8aae269488c94b1ce4 (patch)
treece9dd38b76628f3b1f912433a628e83053899b11 /src
parent5059541dcc1950107ffeed930f85d986f4b5d613 (diff)
Add null checks for GrSkSLtoGLSL to GrGLProgramBuilder
Bug: chromium:845351 Change-Id: I06c4114f9b2cd0609fcf7b7ce6d4a80a00ca85c3 Reviewed-on: https://skia-review.googlesource.com/131525 Auto-Submit: Brian Salomon <bsalomon@google.com> Commit-Queue: Robert Phillips <robertphillips@google.com> Reviewed-by: Robert Phillips <robertphillips@google.com>
Diffstat (limited to 'src')
-rw-r--r--src/gpu/gl/builders/GrGLProgramBuilder.cpp17
1 files changed, 10 insertions, 7 deletions
diff --git a/src/gpu/gl/builders/GrGLProgramBuilder.cpp b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
index 4ffc1ecf22..071a091388 100644
--- a/src/gpu/gl/builders/GrGLProgramBuilder.cpp
+++ b/src/gpu/gl/builders/GrGLProgramBuilder.cpp
@@ -195,6 +195,10 @@ GrGLProgram* GrGLProgramBuilder::finalize() {
fFS.fCompilerStrings.count(),
settings,
&glsl);
+ if (!fs) {
+ this->cleanupProgram(programID, shadersToDelete);
+ return nullptr;
+ }
inputs = fs->fInputs;
if (inputs.fRTHeight) {
this->addRTHeightUniform(SKSL_RTHEIGHT_NAME);
@@ -213,9 +217,9 @@ GrGLProgram* GrGLProgramBuilder::finalize() {
fVS.fCompilerStrings.count(),
settings,
&glsl);
- if (!this->compileAndAttachShaders(glsl.c_str(), glsl.size(), programID,
- GR_GL_VERTEX_SHADER, &shadersToDelete, settings,
- inputs)) {
+ if (!vs || !this->compileAndAttachShaders(glsl.c_str(), glsl.size(), programID,
+ GR_GL_VERTEX_SHADER, &shadersToDelete, settings,
+ inputs)) {
this->cleanupProgram(programID, shadersToDelete);
return nullptr;
}
@@ -238,13 +242,12 @@ GrGLProgram* GrGLProgramBuilder::finalize() {
fGS.fCompilerStrings.count(),
settings,
&glsl);
- if (!this->compileAndAttachShaders(glsl.c_str(), glsl.size(), programID,
- GR_GL_GEOMETRY_SHADER, &shadersToDelete, settings,
- inputs)) {
+ if (!gs || !this->compileAndAttachShaders(glsl.c_str(), glsl.size(), programID,
+ GR_GL_GEOMETRY_SHADER, &shadersToDelete,
+ settings, inputs)) {
this->cleanupProgram(programID, shadersToDelete);
return nullptr;
}
-
}
this->bindProgramResourceLocations(programID);