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

am: 78e277cd42

Change-Id: I551d0fd22cb1848ba009f35edbf15811e959a81a
This commit is contained in:
Tao Bao
2017-04-03 16:30:22 +00:00
committed by android-build-merger
+17 -20
View File
@@ -1317,10 +1317,10 @@ static Value* PerformBlockImageUpdate(const char* name, State* state,
return nullptr; return nullptr;
} }
const Value* blockdev_filename = args[0].get(); const std::unique_ptr<Value>& blockdev_filename = args[0];
const Value* transfer_list_value = args[1].get(); const std::unique_ptr<Value>& transfer_list_value = args[1];
const Value* new_data_fn = args[2].get(); const std::unique_ptr<Value>& new_data_fn = args[2];
const Value* patch_data_fn = args[3].get(); const std::unique_ptr<Value>& patch_data_fn = args[3];
if (blockdev_filename->type != VAL_STRING) { 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);
@@ -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) { Value* RangeSha1Fn(const char* name, State* state, const std::vector<std::unique_ptr<Expr>>& argv) {
if (argv.size() != 2) { if (argv.size() != 2) {
ErrorAbort(state, kArgsParsingFailure, "range_sha1 expects 2 arguments, got %zu", ErrorAbort(state, kArgsParsingFailure, "range_sha1 expects 2 arguments, got %zu", argv.size());
argv.size());
return StringValue(""); return StringValue("");
} }
@@ -1621,12 +1620,11 @@ Value* RangeSha1Fn(const char* name, State* state, const std::vector<std::unique
return nullptr; return nullptr;
} }
const Value* blockdev_filename = args[0].get(); const std::unique_ptr<Value>& blockdev_filename = args[0];
const Value* ranges = args[1].get(); const std::unique_ptr<Value>& ranges = args[1];
if (blockdev_filename->type != VAL_STRING) { if (blockdev_filename->type != VAL_STRING) {
ErrorAbort(state, kArgsParsingFailure, "blockdev_filename argument to %s must be string", ErrorAbort(state, kArgsParsingFailure, "blockdev_filename argument to %s must be string", name);
name);
return StringValue(""); return StringValue("");
} }
if (ranges->type != VAL_STRING) { 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)); android::base::unique_fd fd(ota_open(blockdev_filename->data.c_str(), O_RDWR));
if (fd == -1) { if (fd == -1) {
ErrorAbort(state, kFileOpenFailure, "open \"%s\" failed: %s", ErrorAbort(state, kFileOpenFailure, "open \"%s\" failed: %s", blockdev_filename->data.c_str(),
blockdev_filename->data.c_str(), strerror(errno)); strerror(errno));
return StringValue(""); return StringValue("");
} }
@@ -1649,15 +1647,15 @@ Value* RangeSha1Fn(const char* name, State* state, const std::vector<std::unique
std::vector<uint8_t> buffer(BLOCKSIZE); std::vector<uint8_t> buffer(BLOCKSIZE);
for (size_t i = 0; i < rs.count; ++i) { for (size_t i = 0; i < rs.count; ++i) {
if (!check_lseek(fd, (off64_t)rs.pos[i * 2] * BLOCKSIZE, SEEK_SET)) { if (!check_lseek(fd, (off64_t)rs.pos[i * 2] * BLOCKSIZE, SEEK_SET)) {
ErrorAbort(state, kLseekFailure, "failed to seek %s: %s", ErrorAbort(state, kLseekFailure, "failed to seek %s: %s", blockdev_filename->data.c_str(),
blockdev_filename->data.c_str(), strerror(errno)); strerror(errno));
return StringValue(""); return StringValue("");
} }
for (size_t j = rs.pos[i * 2]; j < rs.pos[i * 2 + 1]; ++j) { for (size_t j = rs.pos[i * 2]; j < rs.pos[i * 2 + 1]; ++j) {
if (read_all(fd, buffer, BLOCKSIZE) == -1) { if (read_all(fd, buffer, BLOCKSIZE) == -1) {
ErrorAbort(state, kFreadFailure, "failed to read %s: %s", ErrorAbort(state, kFreadFailure, "failed to read %s: %s", blockdev_filename->data.c_str(),
blockdev_filename->data.c_str(), strerror(errno)); strerror(errno));
return StringValue(""); return StringValue("");
} }
@@ -1688,7 +1686,7 @@ Value* CheckFirstBlockFn(const char* name, State* state,
return nullptr; return nullptr;
} }
const Value* arg_filename = args[0].get(); const std::unique_ptr<Value>& arg_filename = args[0];
if (arg_filename->type != VAL_STRING) { if (arg_filename->type != VAL_STRING) {
ErrorAbort(state, kArgsParsingFailure, "filename argument to %s must be string", name); 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"); return StringValue("t");
} }
Value* BlockImageRecoverFn(const char* name, State* state, Value* BlockImageRecoverFn(const char* name, State* state,
const std::vector<std::unique_ptr<Expr>>& argv) { const std::vector<std::unique_ptr<Expr>>& argv) {
if (argv.size() != 2) { if (argv.size() != 2) {
@@ -1743,8 +1740,8 @@ Value* BlockImageRecoverFn(const char* name, State* state,
return nullptr; return nullptr;
} }
const Value* filename = args[0].get(); const std::unique_ptr<Value>& filename = args[0];
const Value* ranges = args[1].get(); const std::unique_ptr<Value>& ranges = args[1];
if (filename->type != VAL_STRING) { if (filename->type != VAL_STRING) {
ErrorAbort(state, kArgsParsingFailure, "filename argument to %s must be string", name); ErrorAbort(state, kArgsParsingFailure, "filename argument to %s must be string", name);