diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-05-25 22:38:49 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-05-25 22:38:49 +0000 |
commit | 2aa4b2f3928ccd8393f60db8f7b740c75f4e8a8d (patch) | |
tree | 3c31b98ac48d5bb95c782cfe3c754037e66119d9 /fxjs/cjs_document.cpp | |
parent | b1ec280837cc6e1932754ef40de26d12b77aa910 (diff) | |
download | pdfium-2aa4b2f3928ccd8393f60db8f7b740c75f4e8a8d.tar.xz |
Make CPDF_Page retainable.
Small step to reducing the differences between XFA and non-XFA. We
still use the RetainPtr pretty much as if it were an unique_ptr, in
that we're not yet caching pages and handing out multiple pointers
to the same page in the non-XFA case.
The one change is in page view cleanup, where we no longer need a
boolean and can take (sufficient) page ownership with a RetainPtr.
Tidy up some document.h -> page.h -> document.h circular inclusion
while we're at it.
NOTE: Wait for imminent branch to pass before landing. We'll want
this to bake a while.
Change-Id: I64a2f12ac3424ece1063d40583995b834117cf34
Reviewed-on: https://pdfium-review.googlesource.com/32790
Reviewed-by: dsinclair <dsinclair@chromium.org>
Reviewed-by: Lei Zhang <thestig@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Diffstat (limited to 'fxjs/cjs_document.cpp')
-rw-r--r-- | fxjs/cjs_document.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/fxjs/cjs_document.cpp b/fxjs/cjs_document.cpp index b90794a88d..66577062a6 100644 --- a/fxjs/cjs_document.cpp +++ b/fxjs/cjs_document.cpp @@ -1256,12 +1256,12 @@ CJS_Return CJS_Document::getPageNthWord( if (!pPageDict) return CJS_Return(false); - CPDF_Page page(pDocument, pPageDict, true); - page.ParseContent(); + auto page = pdfium::MakeRetain<CPDF_Page>(pDocument, pPageDict, true); + page->ParseContent(); int nWords = 0; WideString swRet; - for (auto& pPageObj : *page.GetPageObjectList()) { + for (auto& pPageObj : *page->GetPageObjectList()) { if (pPageObj->IsText()) { CPDF_TextObject* pTextObj = pPageObj->AsText(); int nObjWords = CountWords(pTextObj); @@ -1305,11 +1305,11 @@ CJS_Return CJS_Document::getPageNumWords( if (!pPageDict) return CJS_Return(false); - CPDF_Page page(pDocument, pPageDict, true); - page.ParseContent(); + auto page = pdfium::MakeRetain<CPDF_Page>(pDocument, pPageDict, true); + page->ParseContent(); int nWords = 0; - for (auto& pPageObj : *page.GetPageObjectList()) { + for (auto& pPageObj : *page->GetPageObjectList()) { if (pPageObj->IsText()) nWords += CountWords(pPageObj->AsText()); } |