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_; }