summaryrefslogtreecommitdiffstats
path: root/gpu/command_buffer/service/gles2_cmd_decoder.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gpu/command_buffer/service/gles2_cmd_decoder.cc')
-rw-r--r--gpu/command_buffer/service/gles2_cmd_decoder.cc6
1 files changed, 5 insertions, 1 deletions
diff --git a/gpu/command_buffer/service/gles2_cmd_decoder.cc b/gpu/command_buffer/service/gles2_cmd_decoder.cc
index 0d9f326..23a9bac 100644
--- a/gpu/command_buffer/service/gles2_cmd_decoder.cc
+++ b/gpu/command_buffer/service/gles2_cmd_decoder.cc
@@ -4455,8 +4455,12 @@ void GLES2DecoderImpl::DoDetachShader(
if (!shader_info) {
return;
}
+ if (!program_info->DetachShader(shader_manager(), shader_info)) {
+ SetGLError(GL_INVALID_OPERATION,
+ "glDetachShader: shader not attached to program");
+ return;
+ }
glDetachShader(program_info->service_id(), shader_info->service_id());
- program_info->DetachShader(shader_manager(), shader_info);
}
void GLES2DecoderImpl::DoValidateProgram(GLuint program_client_id) {