diff options
author | Cheng-Hao Yang <chenghaoyang@chromium.org> | 2022-07-22 07:06:00 +0000 |
---|---|---|
committer | Umang Jain <umang.jain@ideasonboard.com> | 2022-07-24 19:43:10 +0530 |
commit | 74794de987c069250deba03c1a55ccd6f659e9e8 (patch) | |
tree | d487ef9695041e3faf87bdac81bdc6811d25e83b /src/android/jpeg/exif.cpp | |
parent | 5646849b59fecb53ce4eadcec64fa2c9535e610b (diff) |
android: exif: Fix thumbnail buffer lifetime
Previously the thumbnail buffer is destructed before even being used in
Exif. This patch moves the buffer into class Exif, so that the developer
won't need to worry about its lifetime.
Signed-off-by: Harvey Yang <chenghaoyang@chromium.org>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Reviewed-by: Umang Jain <umang.jain@ideasonboard.com>
Signed-off-by: Umang Jain <umang.jain@ideasonboard.com>
Diffstat (limited to 'src/android/jpeg/exif.cpp')
-rw-r--r-- | src/android/jpeg/exif.cpp | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/src/android/jpeg/exif.cpp b/src/android/jpeg/exif.cpp index 3220b458..6b1d0f1f 100644 --- a/src/android/jpeg/exif.cpp +++ b/src/android/jpeg/exif.cpp @@ -430,16 +430,13 @@ void Exif::setOrientation(int orientation) setShort(EXIF_IFD_0, EXIF_TAG_ORIENTATION, value); } -/* - * The thumbnail data should remain valid until the Exif object is destroyed. - * Failing to do so, might result in no thumbnail data being set even after a - * call to Exif::setThumbnail(). - */ -void Exif::setThumbnail(Span<const unsigned char> thumbnail, +void Exif::setThumbnail(std::vector<unsigned char> &&thumbnail, Compression compression) { - data_->data = const_cast<unsigned char *>(thumbnail.data()); - data_->size = thumbnail.size(); + thumbnailData_ = std::move(thumbnail); + + data_->data = thumbnailData_.data(); + data_->size = thumbnailData_.size(); setShort(EXIF_IFD_0, EXIF_TAG_COMPRESSION, compression); } |