Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 09b43805 authored by Tianjie Xu's avatar Tianjie Xu Committed by android-build-merger
Browse files

Merge "avoid assuming build number is a 32-bit integer" am: 30afdee9

am: 170aa1c9

Change-Id: Ia11eec1dc9c1b484f7f5cd67ff1792b5c3423a26
parents 799cd0bb 170aa1c9
Loading
Loading
Loading
Loading
+9 −13
Original line number Diff line number Diff line
@@ -66,18 +66,14 @@ static constexpr float VERIFICATION_PROGRESS_FRACTION = 0.25;
static std::condition_variable finish_log_temperature;

// This function parses and returns the build.version.incremental
static int parse_build_number(const std::string& str) {
static std::string parse_build_number(const std::string& str) {
    size_t pos = str.find('=');
    if (pos != std::string::npos) {
        std::string num_string = android::base::Trim(str.substr(pos+1));
        int build_number;
        if (android::base::ParseInt(num_string.c_str(), &build_number, 0)) {
            return build_number;
        }
        return android::base::Trim(str.substr(pos+1));
    }

    LOG(ERROR) << "Failed to parse build number in " << str;
    return -1;
    return "";
}

bool read_metadata_from_package(ZipArchiveHandle zip, std::string* metadata) {
@@ -114,14 +110,14 @@ static void read_source_target_build(ZipArchiveHandle zip, std::vector<std::stri
  for (const std::string& line : lines) {
    std::string str = android::base::Trim(line);
    if (android::base::StartsWith(str, "pre-build-incremental")) {
      int source_build = parse_build_number(str);
      if (source_build != -1) {
        log_buffer->push_back(android::base::StringPrintf("source_build: %d", source_build));
      std::string source_build = parse_build_number(str);
      if (!source_build.empty()) {
        log_buffer->push_back("source_build: " + source_build);
      }
    } else if (android::base::StartsWith(str, "post-build-incremental")) {
      int target_build = parse_build_number(str);
      if (target_build != -1) {
        log_buffer->push_back(android::base::StringPrintf("target_build: %d", target_build));
      std::string target_build = parse_build_number(str);
      if (!target_build.empty()) {
        log_buffer->push_back("target_build: " + target_build);
      }
    }
  }