Fix behavior of version_number 78/119478/3
authorJunghyun Yeon <jungh.yeon@samsung.com>
Fri, 17 Mar 2017 06:01:02 +0000 (15:01 +0900)
committerJunghyun Yeon <jungh.yeon@samsung.com>
Thu, 23 Mar 2017 23:43:02 +0000 (08:43 +0900)
- When given version doesn't have patch version,
assume as it exists but don't manipulate given version value.

Change-Id: Ifb2a2e81748637027659746eeb08113f6cf7489d
Signed-off-by: Junghyun Yeon <jungh.yeon@samsung.com>
src/manifest_parser/utils/version_number.cc
src/manifest_parser/utils/version_number.h

index 8ab372e36da96b84840f00306306d26dc51bbb18..21b8764f8d865aa7ddb607fcb6ea7ebb03c841d2 100644 (file)
@@ -31,8 +31,6 @@ VersionNumber::VersionNumber(const std::string& str) {
     parts_.push_back(value);
   }
 
-  for (int i = 3 - parts_.size(); i > 0; i--)
-    parts_.push_back(0);
 }
 
 bool VersionNumber::IsValid() const {
@@ -40,20 +38,25 @@ bool VersionNumber::IsValid() const {
 }
 
 int VersionNumber::Compare(const VersionNumber& other) const {
+  std::vector<int> lhs_version = parts_;
+  std::vector<int> rhs_version = other.parts_;
+  lhs_version.resize(3);
+  rhs_version.resize(3);
   size_t i = 0;
+
   while (true) {
-    if (i < parts_.size()) {
-      if (i < other.parts_.size()) {
-        if (parts_[i] > other.parts_[i]) {
+    if (i < lhs_version.size()) {
+      if (i < rhs_version.size()) {
+        if (lhs_version[i] > rhs_version[i]) {
           return 1;
-        } else if (parts_[i] < other.parts_[i]) {
+        } else if (lhs_version[i] < rhs_version[i]) {
           return -1;
         }
       } else {
         return 1;
       }
     } else {
-      if (i < other.parts_.size()) {
+      if (i < rhs_version.size()) {
         return -1;
       } else {
         return 0;
@@ -63,11 +66,6 @@ int VersionNumber::Compare(const VersionNumber& other) const {
   }
 }
 
-VersionNumber& VersionNumber::Trim(unsigned size) {
-  parts_.resize(size);
-  return *this;
-}
-
 bool VersionNumber::operator<(const VersionNumber& other) const {
   return Compare(other) < 0;
 }
index 36c227a8e225b9cc8fbd7eb5fe2d224c6bbb696e..7ce37f3b2fe31fc3cf12fa1ab3fe9ae2cd7032e2 100644 (file)
@@ -26,7 +26,6 @@ class VersionNumber {
 
   bool IsValid() const;
   int Compare(const VersionNumber& other) const;
-  VersionNumber& Trim(unsigned size);
 
   bool operator<(const VersionNumber& other) const;
   bool operator>=(const VersionNumber& other) const;
@@ -46,7 +45,7 @@ class VersionNumber {
    *    0 <= b <= 255
    *    0 <= c <= 65535
    *
-   * b and c part are optional but code will consider as 0 if doesn't exists
+   * b and c part are optional
    *
    * @return true if version is ok
    */