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

Commit c80dd4ad authored by Tao Bao's avatar Tao Bao Committed by Gerrit Code Review
Browse files

Merge "updater: Keep the parsed parameters in std::unique_ptr."

parents 76cb4eed c97edcb4
Loading
Loading
Loading
Loading
+157 −160
Original line number Diff line number Diff line
@@ -1317,10 +1317,10 @@ static Value* PerformBlockImageUpdate(const char* name, State* state,
    return nullptr;
  }

  const Value* blockdev_filename = args[0].get();
  const Value* transfer_list_value = args[1].get();
  const Value* new_data_fn = args[2].get();
  const Value* patch_data_fn = args[3].get();
  const std::unique_ptr<Value>& blockdev_filename = args[0];
  const std::unique_ptr<Value>& transfer_list_value = args[1];
  const std::unique_ptr<Value>& new_data_fn = args[2];
  const std::unique_ptr<Value>& patch_data_fn = args[3];

  if (blockdev_filename->type != VAL_STRING) {
    ErrorAbort(state, kArgsParsingFailure, "blockdev_filename argument to %s must be string", name);
@@ -1611,8 +1611,7 @@ Value* BlockImageUpdateFn(const char* name, State* state,

Value* RangeSha1Fn(const char* name, State* state, const std::vector<std::unique_ptr<Expr>>& argv) {
  if (argv.size() != 2) {
        ErrorAbort(state, kArgsParsingFailure, "range_sha1 expects 2 arguments, got %zu",
                   argv.size());
    ErrorAbort(state, kArgsParsingFailure, "range_sha1 expects 2 arguments, got %zu", argv.size());
    return StringValue("");
  }

@@ -1621,12 +1620,11 @@ Value* RangeSha1Fn(const char* name, State* state, const std::vector<std::unique
    return nullptr;
  }

    const Value* blockdev_filename = args[0].get();
    const Value* ranges = args[1].get();
  const std::unique_ptr<Value>& blockdev_filename = args[0];
  const std::unique_ptr<Value>& ranges = args[1];

  if (blockdev_filename->type != VAL_STRING) {
        ErrorAbort(state, kArgsParsingFailure, "blockdev_filename argument to %s must be string",
                   name);
    ErrorAbort(state, kArgsParsingFailure, "blockdev_filename argument to %s must be string", name);
    return StringValue("");
  }
  if (ranges->type != VAL_STRING) {
@@ -1636,8 +1634,8 @@ Value* RangeSha1Fn(const char* name, State* state, const std::vector<std::unique

  android::base::unique_fd fd(ota_open(blockdev_filename->data.c_str(), O_RDWR));
  if (fd == -1) {
        ErrorAbort(state, kFileOpenFailure, "open \"%s\" failed: %s",
                   blockdev_filename->data.c_str(), strerror(errno));
    ErrorAbort(state, kFileOpenFailure, "open \"%s\" failed: %s", blockdev_filename->data.c_str(),
               strerror(errno));
    return StringValue("");
  }

@@ -1649,15 +1647,15 @@ Value* RangeSha1Fn(const char* name, State* state, const std::vector<std::unique
  std::vector<uint8_t> buffer(BLOCKSIZE);
  for (size_t i = 0; i < rs.count; ++i) {
    if (!check_lseek(fd, (off64_t)rs.pos[i * 2] * BLOCKSIZE, SEEK_SET)) {
            ErrorAbort(state, kLseekFailure, "failed to seek %s: %s",
                       blockdev_filename->data.c_str(), strerror(errno));
      ErrorAbort(state, kLseekFailure, "failed to seek %s: %s", blockdev_filename->data.c_str(),
                 strerror(errno));
      return StringValue("");
    }

    for (size_t j = rs.pos[i * 2]; j < rs.pos[i * 2 + 1]; ++j) {
      if (read_all(fd, buffer, BLOCKSIZE) == -1) {
                ErrorAbort(state, kFreadFailure, "failed to read %s: %s",
                           blockdev_filename->data.c_str(), strerror(errno));
        ErrorAbort(state, kFreadFailure, "failed to read %s: %s", blockdev_filename->data.c_str(),
                   strerror(errno));
        return StringValue("");
      }

@@ -1688,7 +1686,7 @@ Value* CheckFirstBlockFn(const char* name, State* state,
    return nullptr;
  }

    const Value* arg_filename = args[0].get();
  const std::unique_ptr<Value>& arg_filename = args[0];

  if (arg_filename->type != VAL_STRING) {
    ErrorAbort(state, kArgsParsingFailure, "filename argument to %s must be string", name);
@@ -1729,7 +1727,6 @@ Value* CheckFirstBlockFn(const char* name, State* state,
  return StringValue("t");
}


Value* BlockImageRecoverFn(const char* name, State* state,
                           const std::vector<std::unique_ptr<Expr>>& argv) {
  if (argv.size() != 2) {
@@ -1743,8 +1740,8 @@ Value* BlockImageRecoverFn(const char* name, State* state,
    return nullptr;
  }

    const Value* filename = args[0].get();
    const Value* ranges = args[1].get();
  const std::unique_ptr<Value>& filename = args[0];
  const std::unique_ptr<Value>& ranges = args[1];

  if (filename->type != VAL_STRING) {
    ErrorAbort(state, kArgsParsingFailure, "filename argument to %s must be string", name);