Disallow copying EmbedderTest::ScopedEmbedderTestPage objects
Copying would accidentally allow a double unload. Also fix
ScopedEmbedderTestPage's dtor to not unload a null FPDF_PAGE.
Change-Id: I8806326beaf298705b131696d1475d2bfad7a732
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/124050
Reviewed-by: Tom Sepez <tsepez@chromium.org>
Reviewed-by: Tom Sepez <tsepez@google.com>
Commit-Queue: Lei Zhang <thestig@chromium.org>
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index 3654554..b9e64c9 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -894,5 +894,7 @@
: test_(test), page_(test->LoadPage(page_index)) {}
EmbedderTest::ScopedEmbedderTestPage::~ScopedEmbedderTestPage() {
- test_->UnloadPage(page_);
+ if (page_) {
+ test_->UnloadPage(page_);
+ }
}
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index a065623..ef8f631 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -92,6 +92,8 @@
class ScopedEmbedderTestPage {
public:
ScopedEmbedderTestPage(EmbedderTest* test, int page_index);
+ ScopedEmbedderTestPage(const ScopedEmbedderTestPage&) = delete;
+ ScopedEmbedderTestPage& operator=(const ScopedEmbedderTestPage&) = delete;
~ScopedEmbedderTestPage();
FPDF_PAGE get() { return page_; }
@@ -99,8 +101,8 @@
explicit operator bool() const { return !!page_; }
private:
- UnownedPtr<EmbedderTest> const test_;
- const FPDF_PAGE page_;
+ UnownedPtr<EmbedderTest> test_;
+ FPDF_PAGE page_;
};
EmbedderTest();