Index: content/browser/gpu/gpu_data_manager_impl_private.cc |
diff --git a/content/browser/gpu/gpu_data_manager_impl_private.cc b/content/browser/gpu/gpu_data_manager_impl_private.cc |
index cdf3e392e9c18041ec067ba2850b7eb2e335c86a..bb28f10dd7c5a14bbed629605053597485c05990 100644 |
--- a/content/browser/gpu/gpu_data_manager_impl_private.cc |
+++ b/content/browser/gpu/gpu_data_manager_impl_private.cc |
@@ -16,6 +16,7 @@ |
#include "base/metrics/histogram_macros.h" |
#include "base/metrics/sparse_histogram.h" |
#include "base/strings/string_number_conversions.h" |
+#include "base/strings/string_piece.h" |
#include "base/strings/string_split.h" |
#include "base/strings/stringprintf.h" |
#include "base/trace_event/trace_event.h" |
@@ -660,14 +661,19 @@ void GpuDataManagerImplPrivate::UpdateGpuInfoHelper() { |
UpdateBlacklistedFeatures(features); |
} |
- std::set<std::string> disabled_ext_set; |
+ std::string command_line_disable_gl_extensions; |
+ std::vector<std::string> disabled_driver_bug_exts; |
+ // Holds references to strings in the above two variables. |
+ std::set<base::StringPiece> disabled_ext_set; |
// Merge disabled extensions from the command line with gpu driver bug list. |
if (command_line) { |
- const std::vector<std::string>& disabled_command_line_exts = |
- base::SplitString( |
- command_line->GetSwitchValueASCII(switches::kDisableGLExtensions), |
- ", ;", base::KEEP_WHITESPACE, base::SPLIT_WANT_NONEMPTY); |
+ command_line_disable_gl_extensions = |
+ command_line->GetSwitchValueASCII(switches::kDisableGLExtensions); |
+ std::vector<base::StringPiece> disabled_command_line_exts = |
+ base::SplitStringPiece(command_line_disable_gl_extensions, ", ;", |
+ base::KEEP_WHITESPACE, |
+ base::SPLIT_WANT_NONEMPTY); |
disabled_ext_set.insert(disabled_command_line_exts.begin(), |
disabled_command_line_exts.end()); |
} |
@@ -676,14 +682,13 @@ void GpuDataManagerImplPrivate::UpdateGpuInfoHelper() { |
gpu_driver_bugs_ = gpu_driver_bug_list_->MakeDecision( |
gpu::GpuControlList::kOsAny, os_version, gpu_info_); |
- const std::vector<std::string>& disabled_driver_bug_exts = |
- gpu_driver_bug_list_->GetDisabledExtensions(); |
+ disabled_driver_bug_exts = gpu_driver_bug_list_->GetDisabledExtensions(); |
disabled_ext_set.insert(disabled_driver_bug_exts.begin(), |
disabled_driver_bug_exts.end()); |
} |
disabled_extensions_ = |
- base::JoinString(std::vector<std::string>(disabled_ext_set.begin(), |
- disabled_ext_set.end()), |
+ base::JoinString(std::vector<base::StringPiece>(disabled_ext_set.begin(), |
+ disabled_ext_set.end()), |
" "); |
gpu::GpuDriverBugList::AppendWorkaroundsFromCommandLine( |