diff options
author | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-16 23:58:22 +0000 |
---|---|---|
committer | gman@chromium.org <gman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-16 23:58:22 +0000 |
commit | 9a0ccd4c40d240742ddcd7903051022eebc2e6be (patch) | |
tree | fe6f35dbed95b639ef07bb2a14ff8072aaae2afc /gpu/command_buffer/service/program_manager.cc | |
parent | 9688f78ecebeff987520c5d1ec766f54e417827e (diff) | |
download | chromium_src-9a0ccd4c40d240742ddcd7903051022eebc2e6be.zip chromium_src-9a0ccd4c40d240742ddcd7903051022eebc2e6be.tar.gz chromium_src-9a0ccd4c40d240742ddcd7903051022eebc2e6be.tar.bz2 |
Fixed bug in DetachShader.
TEST=unit tests
BUG=none
Review URL: http://codereview.chromium.org/6677089
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@78467 0039d316-1c4b-4281-b951-d872f2087c98
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) { |