Index: chrome/browser/gpu_blacklist.cc |
diff --git a/chrome/browser/gpu_blacklist.cc b/chrome/browser/gpu_blacklist.cc |
index 7c56b7a3590d9afd55d3bb758f76f6931fe6462e..bddb3c734b35ef464e2bcc709a1b01522113e355 100644 |
--- a/chrome/browser/gpu_blacklist.cc |
+++ b/chrome/browser/gpu_blacklist.cc |
@@ -24,19 +24,21 @@ using content::GpuFeatureType; |
namespace { |
// Encode a date as Version, where [0] is year, [1] is month, and [2] is day. |
-Version* GetDateFromString(const std::string& date_string) { |
+void GetDateFromString(const std::string& date_string, Version* version) { |
// TODO(zmo): verify if in Windows registry, driver dates are always in the |
// format of "mm-dd-yyyy". |
std::vector<std::string> pieces; |
base::SplitString(date_string, '-', &pieces); |
- if (pieces.size() != 3) |
- return NULL; |
+ if (pieces.size() != 3) { |
+ *version = Version(); |
+ return; |
+ } |
std::string date_as_version_string = pieces[2]; |
for (size_t i = 0; i < 2; ++i) { |
date_as_version_string += "."; |
date_as_version_string += pieces[i]; |
} |
- return Version::GetVersionFromString(date_as_version_string); |
+ *version = Version(date_as_version_string); |
} |
// We assume the input format is major.minor, and we treat major version |
@@ -91,14 +93,14 @@ GpuBlacklist::VersionInfo::VersionInfo( |
processed_version_string = version_string; |
processed_version_string2 = version_string2; |
} |
- version_.reset(Version::GetVersionFromString(processed_version_string)); |
- if (version_.get() == NULL) { |
+ version_.reset(new Version(processed_version_string)); |
+ if (!version_->IsValid()) { |
op_ = kUnknown; |
return; |
} |
if (op_ == kBetween) { |
- version2_.reset(Version::GetVersionFromString(processed_version_string2)); |
- if (version2_.get() == NULL) |
+ version2_.reset(new Version(processed_version_string2)); |
+ if (!version2_->IsValid()) |
op_ = kUnknown; |
} |
} |
@@ -795,16 +797,15 @@ bool GpuBlacklist::GpuBlacklistEntry::Contains( |
processed_driver_version = NumericalToLexical(gpu_info.driver_version); |
else |
processed_driver_version = gpu_info.driver_version; |
- scoped_ptr<Version> driver_version( |
- Version::GetVersionFromString(processed_driver_version)); |
- if (driver_version.get() == NULL || |
- !driver_version_info_->Contains(*driver_version)) |
+ Version driver_version(processed_driver_version); |
+ if (!driver_version.IsValid() || |
+ !driver_version_info_->Contains(driver_version)) |
return false; |
} |
if (driver_date_info_.get() != NULL) { |
- scoped_ptr<Version> driver_date(GetDateFromString(gpu_info.driver_date)); |
- if (driver_date.get() == NULL || |
- !driver_date_info_->Contains(*driver_date)) |
+ Version driver_date; |
+ GetDateFromString(gpu_info.driver_date, &driver_date); |
+ if (!driver_date.IsValid() || !driver_date_info_->Contains(driver_date)) |
return false; |
} |
if (gl_vendor_info_.get() != NULL && |
@@ -878,8 +879,8 @@ bool GpuBlacklist::LoadGpuBlacklist( |
const std::string& browser_version_string, |
const std::string& json_context, |
GpuBlacklist::OsFilter os_filter) { |
- browser_version_.reset(Version::GetVersionFromString(browser_version_string)); |
- DCHECK(browser_version_.get() != NULL); |
+ browser_version_.reset(new Version(browser_version_string)); |
+ DCHECK(browser_version_->IsValid()); |
scoped_ptr<Value> root; |
root.reset(base::JSONReader::Read(json_context)); |
@@ -897,8 +898,8 @@ bool GpuBlacklist::LoadGpuBlacklist( |
std::string version_string; |
parsed_json.GetString("version", &version_string); |
- version_.reset(Version::GetVersionFromString(version_string)); |
- if (version_.get() == NULL) |
+ version_.reset(new Version(version_string)); |
+ if (!version_->IsValid()) |
return false; |
ListValue* list = NULL; |
@@ -966,7 +967,7 @@ GpuFeatureType GpuBlacklist::DetermineGpuFeatureType( |
size_t pos = version_string.find_first_not_of("0123456789."); |
if (pos != std::string::npos) |
version_string = version_string.substr(0, pos); |
- my_os_version.reset(Version::GetVersionFromString(version_string)); |
+ my_os_version.reset(new Version(version_string)); |
os_version = my_os_version.get(); |
} |
DCHECK(os_version != NULL); |