summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authordsinclair <dsinclair@chromium.org>2016-09-07 09:02:48 -0700
committerCommit bot <commit-bot@chromium.org>2016-09-07 09:02:48 -0700
commitcb92dc762d5c35232af9f6051b04e9716247d4ae (patch)
tree2968688106a25b0ef244e021ad569284f07b6296
parentce04a458828b45035dab46c13e14a1f0ae67a2b7 (diff)
downloadpdfium-cb92dc762d5c35232af9f6051b04e9716247d4ae.tar.xz
Cleanup page when unloading in embedder tests
When unloading a page in the embedder tests we need to cleanup the internal page map so if we load the page a second time we don't get a previously unloaded page. Review-Url: https://codereview.chromium.org/2322523002
-rw-r--r--testing/embedder_test.cpp8
-rw-r--r--testing/embedder_test.h1
2 files changed, 9 insertions, 0 deletions
diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
index e10e2a81e8..1ce0f36a45 100644
--- a/testing/embedder_test.cpp
+++ b/testing/embedder_test.cpp
@@ -255,6 +255,7 @@ FPDF_PAGE EmbedderTest::LoadPage(int page_number) {
FORM_DoPageAAction(page, form_handle_, FPDFPAGE_AACTION_OPEN);
// Cache the page.
page_map_[page_number] = page;
+ page_reverse_map_[page] = page_number;
return page;
}
@@ -274,6 +275,13 @@ void EmbedderTest::UnloadPage(FPDF_PAGE page) {
FORM_DoPageAAction(page, form_handle_, FPDFPAGE_AACTION_CLOSE);
FORM_OnBeforeClosePage(page, form_handle_);
FPDF_ClosePage(page);
+
+ auto it = page_reverse_map_.find(page);
+ if (it == page_reverse_map_.end())
+ return;
+
+ page_map_.erase(it->second);
+ page_reverse_map_.erase(it);
}
FPDF_PAGE EmbedderTest::Delegate::GetPage(FPDF_FORMFILLINFO* info,
diff --git a/testing/embedder_test.h b/testing/embedder_test.h
index 153ca6e5f3..dc4ca0dc08 100644
--- a/testing/embedder_test.h
+++ b/testing/embedder_test.h
@@ -124,6 +124,7 @@ class EmbedderTest : public ::testing::Test,
size_t file_length_;
std::unique_ptr<char, pdfium::FreeDeleter> file_contents_;
std::map<int, FPDF_PAGE> page_map_;
+ std::map<FPDF_PAGE, int> page_reverse_map_;
private:
static void UnsupportedHandlerTrampoline(UNSUPPORT_INFO*, int type);