| Index: base/version.cc
|
| diff --git a/base/version.cc b/base/version.cc
|
| index 933356ea77c2f4f2faedb603fd0634b3be3c24e4..ede8a4586eb9bb8685b05a00939772cd7eaaefdb 100644
|
| --- a/base/version.cc
|
| +++ b/base/version.cc
|
| @@ -23,7 +23,7 @@ namespace {
|
| // is the resulting integer vector. Function returns true if all numbers were
|
| // parsed successfully, false otherwise.
|
| bool ParseVersionNumbers(const std::string& version_str,
|
| - std::vector<uint16>* parsed) {
|
| + std::vector<uint32_t>* parsed) {
|
| std::vector<std::string> numbers;
|
| SplitString(version_str, '.', &numbers);
|
| if (numbers.empty())
|
| @@ -33,22 +33,18 @@ bool ParseVersionNumbers(const std::string& version_str,
|
| it != numbers.end(); ++it) {
|
| if (StartsWithASCII(*it, "+", false))
|
| return false;
|
| - int num;
|
| - if (!StringToInt(*it, &num))
|
| - return false;
|
| -
|
| - if (num < 0)
|
| - return false;
|
| -
|
| - const uint16 max = 0xFFFF;
|
| - if (num > max)
|
| + unsigned int num;
|
| + if (!StringToUint(*it, &num))
|
| return false;
|
|
|
| // This throws out leading zeros for the first item only.
|
| - if (it == numbers.begin() && IntToString(num) != *it)
|
| + if (it == numbers.begin() && UintToString(num) != *it)
|
| return false;
|
|
|
| - parsed->push_back(static_cast<uint16>(num));
|
| + // StringToUint returns unsigned int but Version fields are uint32_t.
|
| + static_assert(sizeof (uint32_t) == sizeof (unsigned int),
|
| + "uint32_t must be same as unsigned int");
|
| + parsed->push_back(num);
|
| }
|
| return true;
|
| }
|
| @@ -56,8 +52,8 @@ bool ParseVersionNumbers(const std::string& version_str,
|
| // Compares version components in |components1| with components in
|
| // |components2|. Returns -1, 0 or 1 if |components1| is less than, equal to,
|
| // or greater than |components2|, respectively.
|
| -int CompareVersionComponents(const std::vector<uint16>& components1,
|
| - const std::vector<uint16>& components2) {
|
| +int CompareVersionComponents(const std::vector<uint32_t>& components1,
|
| + const std::vector<uint32_t>& components2) {
|
| const size_t count = std::min(components1.size(), components2.size());
|
| for (size_t i = 0; i < count; ++i) {
|
| if (components1[i] > components2[i])
|
| @@ -88,7 +84,7 @@ Version::~Version() {
|
| }
|
|
|
| Version::Version(const std::string& version_str) {
|
| - std::vector<uint16> parsed;
|
| + std::vector<uint32_t> parsed;
|
| if (!ParseVersionNumbers(version_str, &parsed))
|
| return;
|
|
|
| @@ -127,7 +123,7 @@ int Version::CompareToWildcardString(const std::string& wildcard_string) const {
|
| return CompareTo(version);
|
| }
|
|
|
| - std::vector<uint16> parsed;
|
| + std::vector<uint32_t> parsed;
|
| const bool success = ParseVersionNumbers(
|
| wildcard_string.substr(0, wildcard_string.length() - 2), &parsed);
|
| DCHECK(success);
|
|
|