Chromium Code Reviews| Index: gpu/command_buffer/service/program_manager.cc |
| diff --git a/gpu/command_buffer/service/program_manager.cc b/gpu/command_buffer/service/program_manager.cc |
| index 754d5b0630b16d7d450787076dbbfbfd6b3fb257..032935b5419eae1dd55877fea9fdf7f49eda79de 100644 |
| --- a/gpu/command_buffer/service/program_manager.cc |
| +++ b/gpu/command_buffer/service/program_manager.cc |
| @@ -28,6 +28,7 @@ |
| #include "gpu/command_buffer/service/gles2_cmd_decoder.h" |
| #include "gpu/command_buffer/service/gpu_preferences.h" |
| #include "gpu/command_buffer/service/program_cache.h" |
| +#include "gpu/command_buffer/service/progress_reporter.h" |
| #include "gpu/command_buffer/service/shader_manager.h" |
| #include "third_party/re2/src/re2/re2.h" |
| #include "ui/gl/gl_version_info.h" |
| @@ -2474,12 +2475,17 @@ ProgramManager::~ProgramManager() { |
| DCHECK(programs_.empty()); |
| } |
| -void ProgramManager::Destroy(bool have_context) { |
| +void ProgramManager::Destroy(bool have_context, |
| + ProgressReporter* progress_reporter) { |
| have_context_ = have_context; |
| ProgramDeletionScopedUmaTimeAndRate scoped_histogram( |
| base::saturated_cast<int32_t>(programs_.size())); |
| - programs_.clear(); |
| + while (!programs_.empty()) { |
| + programs_.erase(programs_.begin()); |
| + if (progress_reporter) |
|
danakj
2016/10/05 01:53:48
same, when is it null?
ericrk
2016/10/05 18:07:31
refactored/removed.
|
| + progress_reporter->ReportProgress(); |
| + } |
| } |
| void ProgramManager::StartTracking(Program* /* program */) { |