applypatch: Switch the parameter of Value** to std::vector.
Test: Unit tests and install-recovery.sh pass on angler and dragon.
Change-Id: I328e6554edca667cf850f5584ebf1ac211e3d4d1
diff --git a/applypatch/main.cpp b/applypatch/main.cpp
index 294f7ee..988b6f9 100644
--- a/applypatch/main.cpp
+++ b/applypatch/main.cpp
@@ -23,9 +23,10 @@
#include <string>
#include <vector>
+#include <openssl/sha.h>
+
#include "applypatch/applypatch.h"
#include "edify/expr.h"
-#include "openssl/sha.h"
static int CheckMode(int argc, char** argv) {
if (argc < 3) {
@@ -129,15 +130,13 @@
printf("failed to parse patch args\n");
return 1;
}
- std::vector<Value> patches;
- std::vector<Value*> patch_ptrs;
+
+ std::vector<std::unique_ptr<Value>> patches;
for (size_t i = 0; i < files.size(); ++i) {
- patches.push_back(Value(VAL_BLOB,
- std::string(files[i].data.cbegin(), files[i].data.cend())));
- patch_ptrs.push_back(&patches[i]);
+ patches.push_back(std::make_unique<Value>(
+ VAL_BLOB, std::string(files[i].data.cbegin(), files[i].data.cend())));
}
- return applypatch(argv[1], argv[2], argv[3], target_size,
- sha1s, patch_ptrs.data(), &bonus);
+ return applypatch(argv[1], argv[2], argv[3], target_size, sha1s, patches, &bonus);
}
// This program applies binary patches to files in a way that is safe