update_engine: replace std::vector<char> with chromeos::Blob
To make update engine consistent with the rest of platform2 code
replaced std::vector<char> as the container of binary data with
chromeos::Blob.
BUG=None
TEST=`FEATURES=test emerge-link update_engine`
Change-Id: I6385fd2257d15aa24bfa74ac35512c2a06c33012
Reviewed-on: https://chromium-review.googlesource.com/247793
Reviewed-by: Gilad Arnold <garnold@chromium.org>
Reviewed-by: Alex Deymo <deymo@chromium.org>
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/bzip.cc b/bzip.cc
index 2b225c0..323a080 100644
--- a/bzip.cc
+++ b/bzip.cc
@@ -19,38 +19,40 @@
// BzipData compresses or decompresses the input to the output.
// Returns true on success.
// Use one of BzipBuffToBuff*ompress as the template parameter to BzipData().
-int BzipBuffToBuffDecompress(char* out,
+int BzipBuffToBuffDecompress(uint8_t* out,
uint32_t* out_length,
- const char* in,
+ const void* in,
uint32_t in_length) {
- return BZ2_bzBuffToBuffDecompress(out,
- out_length,
- const_cast<char*>(in),
- in_length,
- 0, // Silent verbosity
- 0); // Normal algorithm
+ return BZ2_bzBuffToBuffDecompress(
+ reinterpret_cast<char*>(out),
+ out_length,
+ reinterpret_cast<char*>(const_cast<void*>(in)),
+ in_length,
+ 0, // Silent verbosity
+ 0); // Normal algorithm
}
-int BzipBuffToBuffCompress(char* out,
+int BzipBuffToBuffCompress(uint8_t* out,
uint32_t* out_length,
- const char* in,
+ const void* in,
uint32_t in_length) {
- return BZ2_bzBuffToBuffCompress(out,
- out_length,
- const_cast<char*>(in),
- in_length,
- 9, // Best compression
- 0, // Silent verbosity
- 0); // Default work factor
+ return BZ2_bzBuffToBuffCompress(
+ reinterpret_cast<char*>(out),
+ out_length,
+ reinterpret_cast<char*>(const_cast<void*>(in)),
+ in_length,
+ 9, // Best compression
+ 0, // Silent verbosity
+ 0); // Default work factor
}
-template<int F(char* out,
+template<int F(uint8_t* out,
uint32_t* out_length,
- const char* in,
+ const void* in,
uint32_t in_length)>
-bool BzipData(const char* const in,
+bool BzipData(const void* const in,
const int32_t in_size,
- vector<char>* const out) {
+ chromeos::Blob* const out) {
TEST_AND_RETURN_FALSE(out);
out->clear();
if (in_size == 0) {
@@ -62,7 +64,7 @@
for (;;) {
uint32_t data_size = buf_size;
- int rc = F(&(*out)[0], &data_size, in, in_size);
+ int rc = F(out->data(), &data_size, in, in_size);
TEST_AND_RETURN_FALSE(rc == BZ_OUTBUFF_FULL || rc == BZ_OK);
if (rc == BZ_OK) {
// we're done!
@@ -78,40 +80,36 @@
} // namespace
-bool BzipDecompress(const vector<char>& in, vector<char>* out) {
- return BzipData<BzipBuffToBuffDecompress>(&in[0],
+bool BzipDecompress(const chromeos::Blob& in, chromeos::Blob* out) {
+ return BzipData<BzipBuffToBuffDecompress>(in.data(),
static_cast<int32_t>(in.size()),
out);
}
-bool BzipCompress(const vector<char>& in, vector<char>* out) {
- return BzipData<BzipBuffToBuffCompress>(&in[0], in.size(), out);
+bool BzipCompress(const chromeos::Blob& in, chromeos::Blob* out) {
+ return BzipData<BzipBuffToBuffCompress>(in.data(), in.size(), out);
}
namespace {
-template<bool F(const char* const in,
+template<bool F(const void* const in,
const int32_t in_size,
- vector<char>* const out)>
+ chromeos::Blob* const out)>
bool BzipString(const string& str,
- vector<char>* out) {
+ chromeos::Blob* out) {
TEST_AND_RETURN_FALSE(out);
- vector<char> temp;
- TEST_AND_RETURN_FALSE(F(str.data(),
- str.size(),
- &temp));
+ chromeos::Blob temp;
+ TEST_AND_RETURN_FALSE(F(str.data(), str.size(), &temp));
out->clear();
out->insert(out->end(), temp.begin(), temp.end());
return true;
}
} // namespace
-bool BzipCompressString(const string& str,
- vector<char>* out) {
+bool BzipCompressString(const string& str, chromeos::Blob* out) {
return BzipString<BzipData<BzipBuffToBuffCompress>>(str, out);
}
-bool BzipDecompressString(const string& str,
- vector<char>* out) {
+bool BzipDecompressString(const string& str, chromeos::Blob* out) {
return BzipString<BzipData<BzipBuffToBuffDecompress>>(str, out);
}