| Index: fpdfsdk/src/javascript/Document.cpp
|
| diff --git a/fpdfsdk/src/javascript/Document.cpp b/fpdfsdk/src/javascript/Document.cpp
|
| index c2638d012d5e45094820449712274bc74233f2e0..733384a154bc3605db2e239336da362e2c73606f 100644
|
| --- a/fpdfsdk/src/javascript/Document.cpp
|
| +++ b/fpdfsdk/src/javascript/Document.cpp
|
| @@ -1382,20 +1382,15 @@ FX_BOOL Document::getPageNthWord(IJS_Context* cc,
|
|
|
| int nWords = 0;
|
| CFX_WideString swRet;
|
| - FX_POSITION pos = page.GetPageObjectList()->GetHeadPosition();
|
| - while (pos) {
|
| - if (CPDF_PageObject* pPageObj =
|
| - page.GetPageObjectList()->GetNextObject(pos)) {
|
| - if (pPageObj->m_Type == CPDF_PageObject::TEXT) {
|
| - int nObjWords = CountWords((CPDF_TextObject*)pPageObj);
|
| -
|
| - if (nWords + nObjWords >= nWordNo) {
|
| - swRet = GetObjWordStr((CPDF_TextObject*)pPageObj, nWordNo - nWords);
|
| - break;
|
| - }
|
| -
|
| - nWords += nObjWords;
|
| + for (auto& pPageObj : *page.GetPageObjectList()) {
|
| + if (pPageObj->m_Type == CPDF_PageObject::TEXT) {
|
| + CPDF_TextObject* pTextObj = static_cast<CPDF_TextObject*>(pPageObj.get());
|
| + int nObjWords = CountWords(pTextObj);
|
| + if (nWords + nObjWords >= nWordNo) {
|
| + swRet = GetObjWordStr(pTextObj, nWordNo - nWords);
|
| + break;
|
| }
|
| + nWords += nObjWords;
|
| }
|
| }
|
|
|
| @@ -1442,15 +1437,9 @@ FX_BOOL Document::getPageNumWords(IJS_Context* cc,
|
| page.ParseContent(nullptr);
|
|
|
| int nWords = 0;
|
| - FX_POSITION pos = page.GetPageObjectList()->GetHeadPosition();
|
| - while (pos) {
|
| - if (CPDF_PageObject* pPageObj =
|
| - page.GetPageObjectList()->GetNextObject(pos)) {
|
| - if (pPageObj->m_Type == CPDF_PageObject::TEXT) {
|
| - CPDF_TextObject* pTextObj = (CPDF_TextObject*)pPageObj;
|
| - nWords += CountWords(pTextObj);
|
| - }
|
| - }
|
| + for (auto& pPageObj : *page.GetPageObjectList()) {
|
| + if (pPageObj->m_Type == CPDF_PageObject::TEXT)
|
| + nWords += CountWords(static_cast<CPDF_TextObject*>(pPageObj.get()));
|
| }
|
|
|
| vRet = nWords;
|
|
|