Make ScopedEmbedderTestPage moveable Make ScopedEmbedderTestPage moveable, so ownership can be transferred. e.g. https://pdfium-review.googlesource.com/124010 can benefit from this. Change-Id: I2395acd2576415f929238b80ce34a89490a0c399 Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/124110 Commit-Queue: Lei Zhang <thestig@chromium.org> Reviewed-by: Tom Sepez <tsepez@chromium.org> Reviewed-by: Tom Sepez <tsepez@google.com>
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp index b9e64c9..9ae5bc0 100644 --- a/testing/embedder_test.cpp +++ b/testing/embedder_test.cpp
@@ -893,6 +893,18 @@ int page_index) : test_(test), page_(test->LoadPage(page_index)) {} +EmbedderTest::ScopedEmbedderTestPage::ScopedEmbedderTestPage( + EmbedderTest::ScopedEmbedderTestPage&& that) noexcept + : test_(std::move(that.test_)), page_(std::exchange(that.page_, nullptr)) {} + +EmbedderTest::ScopedEmbedderTestPage& +EmbedderTest::ScopedEmbedderTestPage::operator=( + EmbedderTest::ScopedEmbedderTestPage&& that) noexcept { + test_ = std::move(that.test_); + page_ = std::exchange(that.page_, nullptr); + return *this; +} + EmbedderTest::ScopedEmbedderTestPage::~ScopedEmbedderTestPage() { if (page_) { test_->UnloadPage(page_);
diff --git a/testing/embedder_test.h b/testing/embedder_test.h index ef8f631..a987daa 100644 --- a/testing/embedder_test.h +++ b/testing/embedder_test.h
@@ -94,6 +94,8 @@ ScopedEmbedderTestPage(EmbedderTest* test, int page_index); ScopedEmbedderTestPage(const ScopedEmbedderTestPage&) = delete; ScopedEmbedderTestPage& operator=(const ScopedEmbedderTestPage&) = delete; + ScopedEmbedderTestPage(ScopedEmbedderTestPage&&) noexcept; + ScopedEmbedderTestPage& operator=(ScopedEmbedderTestPage&&) noexcept; ~ScopedEmbedderTestPage(); FPDF_PAGE get() { return page_; }