Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(29)

Side by Side Diff: core/fpdftext/fpdf_text_int.cpp

Issue 2049003003: Add some consts and remove more casts in core/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@master
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « core/fpdfdoc/include/fpdf_doc.h ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2014 PDFium Authors. All rights reserved. 1 // Copyright 2014 PDFium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com 5 // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
6 6
7 #include <algorithm> 7 #include <algorithm>
8 #include <cctype> 8 #include <cctype>
9 #include <cwctype> 9 #include <cwctype>
10 #include <memory> 10 #include <memory>
(...skipping 990 matching lines...) Expand 10 before | Expand all | Expand 10 after
1001 break; 1001 break;
1002 } 1002 }
1003 } 1003 }
1004 if (i < 0) { 1004 if (i < 0) {
1005 m_LineObj.InsertAt(0, Obj); 1005 m_LineObj.InsertAt(0, Obj);
1006 } 1006 }
1007 } 1007 }
1008 1008
1009 FPDFText_MarkedContent CPDF_TextPage::PreMarkedContent(PDFTEXT_Obj Obj) { 1009 FPDFText_MarkedContent CPDF_TextPage::PreMarkedContent(PDFTEXT_Obj Obj) {
1010 CPDF_TextObject* pTextObj = Obj.m_pTextObj; 1010 CPDF_TextObject* pTextObj = Obj.m_pTextObj;
1011 CPDF_ContentMarkData* pMarkData = 1011 const CPDF_ContentMarkData* pMarkData = pTextObj->m_ContentMark.GetObject();
1012 (CPDF_ContentMarkData*)pTextObj->m_ContentMark.GetObject();
1013 if (!pMarkData) 1012 if (!pMarkData)
1014 return FPDFText_MarkedContent::Pass; 1013 return FPDFText_MarkedContent::Pass;
1015 1014
1016 int nContentMark = pMarkData->CountItems(); 1015 int nContentMark = pMarkData->CountItems();
1017 if (nContentMark < 1) 1016 if (nContentMark < 1)
1018 return FPDFText_MarkedContent::Pass; 1017 return FPDFText_MarkedContent::Pass;
1019 1018
1020 CFX_WideString actText; 1019 CFX_WideString actText;
1021 FX_BOOL bExist = FALSE; 1020 FX_BOOL bExist = FALSE;
1022 CPDF_Dictionary* pDict = nullptr; 1021 CPDF_Dictionary* pDict = nullptr;
1023 int n = 0; 1022 int n = 0;
1024 for (n = 0; n < nContentMark; n++) { 1023 for (n = 0; n < nContentMark; n++) {
1025 CPDF_ContentMarkItem& item = pMarkData->GetItem(n); 1024 const CPDF_ContentMarkItem& item = pMarkData->GetItem(n);
1026 if (item.GetParamType() == CPDF_ContentMarkItem::ParamType::None) 1025 if (item.GetParamType() == CPDF_ContentMarkItem::ParamType::None)
1027 continue; 1026 continue;
1028 pDict = item.GetParam(); 1027 pDict = item.GetParam();
1029 CPDF_String* temp = 1028 CPDF_String* temp =
1030 ToString(pDict ? pDict->GetObjectBy("ActualText") : nullptr); 1029 ToString(pDict ? pDict->GetObjectBy("ActualText") : nullptr);
1031 if (temp) { 1030 if (temp) {
1032 bExist = TRUE; 1031 bExist = TRUE;
1033 actText = temp->GetUnicodeText(); 1032 actText = temp->GetUnicodeText();
1034 } 1033 }
1035 } 1034 }
1036 if (!bExist) 1035 if (!bExist)
1037 return FPDFText_MarkedContent::Pass; 1036 return FPDFText_MarkedContent::Pass;
1038 1037
1039 if (m_pPreTextObj) { 1038 if (m_pPreTextObj) {
1040 CPDF_ContentMarkData* pPreMarkData = 1039 const CPDF_ContentMarkData* pPreMarkData =
1041 (CPDF_ContentMarkData*)m_pPreTextObj->m_ContentMark.GetObject(); 1040 m_pPreTextObj->m_ContentMark.GetObject();
1042 if (pPreMarkData && pPreMarkData->CountItems() == n && 1041 if (pPreMarkData && pPreMarkData->CountItems() == n &&
1043 pDict == pPreMarkData->GetItem(n - 1).GetParam()) { 1042 pDict == pPreMarkData->GetItem(n - 1).GetParam()) {
1044 return FPDFText_MarkedContent::Done; 1043 return FPDFText_MarkedContent::Done;
1045 } 1044 }
1046 } 1045 }
1047 FX_STRSIZE nItems = actText.GetLength(); 1046 FX_STRSIZE nItems = actText.GetLength();
1048 if (nItems < 1) 1047 if (nItems < 1)
1049 return FPDFText_MarkedContent::Pass; 1048 return FPDFText_MarkedContent::Pass;
1050 1049
1051 CPDF_Font* pFont = pTextObj->GetFont(); 1050 CPDF_Font* pFont = pTextObj->GetFont();
(...skipping 17 matching lines...) Expand all
1069 } 1068 }
1070 } 1069 }
1071 if (!bExist) 1070 if (!bExist)
1072 return FPDFText_MarkedContent::Done; 1071 return FPDFText_MarkedContent::Done;
1073 1072
1074 return FPDFText_MarkedContent::Delay; 1073 return FPDFText_MarkedContent::Delay;
1075 } 1074 }
1076 1075
1077 void CPDF_TextPage::ProcessMarkedContent(PDFTEXT_Obj Obj) { 1076 void CPDF_TextPage::ProcessMarkedContent(PDFTEXT_Obj Obj) {
1078 CPDF_TextObject* pTextObj = Obj.m_pTextObj; 1077 CPDF_TextObject* pTextObj = Obj.m_pTextObj;
1079 CPDF_ContentMarkData* pMarkData = 1078 const CPDF_ContentMarkData* pMarkData = pTextObj->m_ContentMark.GetObject();
1080 (CPDF_ContentMarkData*)pTextObj->m_ContentMark.GetObject();
1081 if (!pMarkData) 1079 if (!pMarkData)
1082 return; 1080 return;
1083 1081
1084 int nContentMark = pMarkData->CountItems(); 1082 int nContentMark = pMarkData->CountItems();
1085 if (nContentMark < 1) 1083 if (nContentMark < 1)
1086 return; 1084 return;
1087 CFX_WideString actText; 1085 CFX_WideString actText;
1088 CPDF_Dictionary* pDict = nullptr; 1086 CPDF_Dictionary* pDict = nullptr;
1089 for (int n = 0; n < nContentMark; n++) { 1087 for (int n = 0; n < nContentMark; n++) {
1090 CPDF_ContentMarkItem& item = pMarkData->GetItem(n); 1088 const CPDF_ContentMarkItem& item = pMarkData->GetItem(n);
1091 if (item.GetParamType() == CPDF_ContentMarkItem::ParamType::None) 1089 if (item.GetParamType() == CPDF_ContentMarkItem::ParamType::None)
1092 continue; 1090 continue;
1093 pDict = item.GetParam(); 1091 pDict = item.GetParam();
1094 if (pDict) 1092 if (pDict)
1095 actText = pDict->GetUnicodeTextBy("ActualText"); 1093 actText = pDict->GetUnicodeTextBy("ActualText");
1096 } 1094 }
1097 FX_STRSIZE nItems = actText.GetLength(); 1095 FX_STRSIZE nItems = actText.GetLength();
1098 if (nItems < 1) 1096 if (nItems < 1)
1099 return; 1097 return;
1100 1098
(...skipping 1237 matching lines...) Expand 10 before | Expand all | Expand 10 after
2338 return index < m_LinkArray.size() ? m_LinkArray[index].m_strUrl : L""; 2336 return index < m_LinkArray.size() ? m_LinkArray[index].m_strUrl : L"";
2339 } 2337 }
2340 2338
2341 std::vector<CFX_FloatRect> CPDF_LinkExtract::GetRects(size_t index) const { 2339 std::vector<CFX_FloatRect> CPDF_LinkExtract::GetRects(size_t index) const {
2342 if (index >= m_LinkArray.size()) 2340 if (index >= m_LinkArray.size())
2343 return std::vector<CFX_FloatRect>(); 2341 return std::vector<CFX_FloatRect>();
2344 2342
2345 return m_pTextPage->GetRectArray(m_LinkArray[index].m_Start, 2343 return m_pTextPage->GetRectArray(m_LinkArray[index].m_Start,
2346 m_LinkArray[index].m_Count); 2344 m_LinkArray[index].m_Count);
2347 } 2345 }
OLDNEW
« no previous file with comments | « core/fpdfdoc/include/fpdf_doc.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698