| Index: testing/embedder_test.cpp
|
| diff --git a/testing/embedder_test.cpp b/testing/embedder_test.cpp
|
| index b1207fba8267fe977b2234be9d9700b58cbda58b..e10e2a81e8d57dc7effbcc02cbdc5bacbf1ac650 100644
|
| --- a/testing/embedder_test.cpp
|
| +++ b/testing/embedder_test.cpp
|
| @@ -242,21 +242,19 @@ int EmbedderTest::GetPageCount() {
|
| }
|
|
|
| FPDF_PAGE EmbedderTest::LoadPage(int page_number) {
|
| + // First check whether it is loaded already.
|
| + auto it = page_map_.find(page_number);
|
| + if (it != page_map_.end())
|
| + return it->second;
|
| +
|
| FPDF_PAGE page = FPDF_LoadPage(document_, page_number);
|
| if (!page) {
|
| return nullptr;
|
| }
|
| FORM_OnAfterLoadPage(page, form_handle_);
|
| FORM_DoPageAAction(page, form_handle_, FPDFPAGE_AACTION_OPEN);
|
| - return page;
|
| -}
|
| -
|
| -FPDF_PAGE EmbedderTest::LoadAndCachePage(int page_number) {
|
| - FPDF_PAGE page = delegate_->GetPage(form_handle_, document_, page_number);
|
| - if (!page) {
|
| - return nullptr;
|
| - }
|
| - FORM_DoPageAAction(page, form_handle_, FPDFPAGE_AACTION_OPEN);
|
| + // Cache the page.
|
| + page_map_[page_number] = page;
|
| return page;
|
| }
|
|
|
| @@ -278,20 +276,12 @@ void EmbedderTest::UnloadPage(FPDF_PAGE page) {
|
| FPDF_ClosePage(page);
|
| }
|
|
|
| -FPDF_PAGE EmbedderTest::Delegate::GetPage(FPDF_FORMHANDLE form_handle,
|
| +FPDF_PAGE EmbedderTest::Delegate::GetPage(FPDF_FORMFILLINFO* info,
|
| FPDF_DOCUMENT document,
|
| int page_index) {
|
| - auto it = m_pageMap.find(page_index);
|
| - if (it != m_pageMap.end()) {
|
| - return it->second;
|
| - }
|
| - FPDF_PAGE page = FPDF_LoadPage(document, page_index);
|
| - if (!page) {
|
| - return nullptr;
|
| - }
|
| - m_pageMap[page_index] = page;
|
| - FORM_OnAfterLoadPage(page, form_handle);
|
| - return page;
|
| + EmbedderTest* test = static_cast<EmbedderTest*>(info);
|
| + auto it = test->page_map_.find(page_index);
|
| + return it != test->page_map_.end() ? it->second : nullptr;
|
| }
|
|
|
| // static
|
| @@ -329,8 +319,8 @@ void EmbedderTest::KillTimerTrampoline(FPDF_FORMFILLINFO* info, int id) {
|
| FPDF_PAGE EmbedderTest::GetPageTrampoline(FPDF_FORMFILLINFO* info,
|
| FPDF_DOCUMENT document,
|
| int page_index) {
|
| - EmbedderTest* test = static_cast<EmbedderTest*>(info);
|
| - return test->delegate_->GetPage(test->form_handle(), document, page_index);
|
| + return static_cast<EmbedderTest*>(info)->delegate_->GetPage(info, document,
|
| + page_index);
|
| }
|
|
|
| // Can't use gtest-provided main since we need to stash the path to the
|
|
|