Match LZMA SDK 18.05 API.
The signature of ISeqInStream::Read and ISeqOutStream::Write changed.
CXzProps::lzma2Props is not a pointer now.
Test: update_engine_unittests
Change-Id: I48c4ff50fd8a17b5a583f5455bf1c743547d807a
diff --git a/payload_generator/xz_android.cc b/payload_generator/xz_android.cc
index f3b836d..b2b74b1 100644
--- a/payload_generator/xz_android.cc
+++ b/payload_generator/xz_android.cc
@@ -34,9 +34,8 @@
Read = &BlobReaderStream::ReadStatic;
}
- static SRes ReadStatic(void* p, void* buf, size_t* size) {
- auto* self =
- static_cast<BlobReaderStream*>(reinterpret_cast<ISeqInStream*>(p));
+ static SRes ReadStatic(const ISeqInStream* p, void* buf, size_t* size) {
+ auto* self = static_cast<BlobReaderStream*>(const_cast<ISeqInStream*>(p));
*size = std::min(*size, self->data_.size() - self->pos_);
memcpy(buf, self->data_.data() + self->pos_, *size);
self->pos_ += *size;
@@ -55,9 +54,10 @@
Write = &BlobWriterStream::WriteStatic;
}
- static size_t WriteStatic(void* p, const void* buf, size_t size) {
- auto* self =
- static_cast<BlobWriterStream*>(reinterpret_cast<ISeqOutStream*>(p));
+ static size_t WriteStatic(const ISeqOutStream* p,
+ const void* buf,
+ size_t size) {
+ auto* self = static_cast<const BlobWriterStream*>(p);
const uint8_t* buffer = reinterpret_cast<const uint8_t*>(buf);
self->data_->reserve(self->data_->size() + size);
self->data_->insert(self->data_->end(), buffer, buffer + size);
@@ -97,7 +97,6 @@
// LZMA2 compression properties.
CLzma2EncProps lzma2Props;
- props.lzma2Props = &lzma2Props;
Lzma2EncProps_Init(&lzma2Props);
// LZMA compression "level 6" requires 9 MB of RAM to decompress in the worst
// case.
@@ -106,6 +105,7 @@
// The input size data is used to reduce the dictionary size if possible.
lzma2Props.lzmaProps.reduceSize = in.size();
Lzma2EncProps_Normalize(&lzma2Props);
+ props.lzma2Props = lzma2Props;
BlobWriterStream out_writer(out);
BlobReaderStream in_reader(in);