diff options
Diffstat (limited to 'gpu/command_buffer/service/program_manager.cc')
-rw-r--r-- | gpu/command_buffer/service/program_manager.cc | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc index 2b9ed0b..683449a 100644 --- a/gpu/command_buffer/service/program_manager.cc +++ b/gpu/command_buffer/service/program_manager.cc @@ -377,13 +377,17 @@ bool ProgramManager::ProgramInfo::AttachShader( return true; } -void ProgramManager::ProgramInfo::DetachShader( +bool ProgramManager::ProgramInfo::DetachShader( ShaderManager* shader_manager, ShaderManager::ShaderInfo* info) { DCHECK(shader_manager); DCHECK(info); + if (attached_shaders_[ShaderTypeToIndex(info->shader_type())].get() != info) { + return false; + } attached_shaders_[ShaderTypeToIndex(info->shader_type())] = NULL; shader_manager->UnuseShader(info); + return true; } void ProgramManager::ProgramInfo::DetachShaders(ShaderManager* shader_manager) { |