OLD | NEW |
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 "xfa/fxfa/parser/xfa_basic_imp.h" | 7 #include "xfa/fxfa/parser/xfa_basic_imp.h" |
8 | 8 |
9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
10 #include "xfa/fgas/crt/fgas_algorithm.h" | |
11 #include "xfa/fgas/crt/fgas_codepage.h" | 10 #include "xfa/fgas/crt/fgas_codepage.h" |
12 #include "xfa/fgas/crt/fgas_system.h" | 11 #include "xfa/fgas/crt/fgas_system.h" |
13 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" | 12 #include "xfa/fxfa/fm2js/xfa_fm2jsapi.h" |
14 #include "xfa/fxfa/parser/xfa_basic_data.h" | 13 #include "xfa/fxfa/parser/xfa_basic_data.h" |
15 #include "xfa/fxfa/parser/xfa_doclayout.h" | 14 #include "xfa/fxfa/parser/xfa_doclayout.h" |
16 #include "xfa/fxfa/parser/xfa_document.h" | 15 #include "xfa/fxfa/parser/xfa_document.h" |
17 #include "xfa/fxfa/parser/xfa_localemgr.h" | 16 #include "xfa/fxfa/parser/xfa_localemgr.h" |
18 #include "xfa/fxfa/parser/xfa_object.h" | 17 #include "xfa/fxfa/parser/xfa_object.h" |
19 #include "xfa/fxfa/parser/xfa_parser.h" | 18 #include "xfa/fxfa/parser/xfa_parser.h" |
20 #include "xfa/fxfa/parser/xfa_script.h" | 19 #include "xfa/fxfa/parser/xfa_script.h" |
(...skipping 187 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
208 return g_XFAElementChildrenData + pElement->wStart; | 207 return g_XFAElementChildrenData + pElement->wStart; |
209 } | 208 } |
210 const uint8_t* XFA_GetElementAttributes(XFA_ELEMENT eElement, int32_t& iCount) { | 209 const uint8_t* XFA_GetElementAttributes(XFA_ELEMENT eElement, int32_t& iCount) { |
211 if (eElement >= g_iXFAElementCount) { | 210 if (eElement >= g_iXFAElementCount) { |
212 return NULL; | 211 return NULL; |
213 } | 212 } |
214 const XFA_ELEMENTHIERARCHY* pElement = g_XFAElementAttributeIndex + eElement; | 213 const XFA_ELEMENTHIERARCHY* pElement = g_XFAElementAttributeIndex + eElement; |
215 iCount = pElement->wCount; | 214 iCount = pElement->wCount; |
216 return g_XFAElementAttributeData + pElement->wStart; | 215 return g_XFAElementAttributeData + pElement->wStart; |
217 } | 216 } |
| 217 |
218 const XFA_ATTRIBUTEINFO* XFA_GetAttributeOfElement(XFA_ELEMENT eElement, | 218 const XFA_ATTRIBUTEINFO* XFA_GetAttributeOfElement(XFA_ELEMENT eElement, |
219 XFA_ATTRIBUTE eAttribute, | 219 XFA_ATTRIBUTE eAttribute, |
220 uint32_t dwPacket) { | 220 uint32_t dwPacket) { |
221 int32_t iCount = 0; | 221 int32_t iCount = 0; |
222 const uint8_t* pAttr = XFA_GetElementAttributes(eElement, iCount); | 222 const uint8_t* pAttr = XFA_GetElementAttributes(eElement, iCount); |
223 if (pAttr == NULL || iCount < 1) { | 223 if (!pAttr || iCount < 1) |
224 return NULL; | 224 return nullptr; |
225 } | 225 |
226 CFX_DSPATemplate<uint8_t> search; | 226 if (!std::binary_search(pAttr, pAttr + iCount, eAttribute)) |
227 int32_t index = search.Lookup(eAttribute, pAttr, iCount); | 227 return nullptr; |
228 if (index < 0) { | 228 |
229 return NULL; | |
230 } | |
231 const XFA_ATTRIBUTEINFO* pInfo = XFA_GetAttributeByID(eAttribute); | 229 const XFA_ATTRIBUTEINFO* pInfo = XFA_GetAttributeByID(eAttribute); |
232 ASSERT(pInfo); | 230 ASSERT(pInfo); |
233 if (dwPacket == XFA_XDPPACKET_UNKNOWN) | 231 if (dwPacket == XFA_XDPPACKET_UNKNOWN) |
234 return pInfo; | 232 return pInfo; |
235 return (dwPacket & pInfo->dwPackets) ? pInfo : NULL; | 233 return (dwPacket & pInfo->dwPackets) ? pInfo : nullptr; |
236 } | 234 } |
237 | 235 |
238 const XFA_PROPERTY* XFA_GetElementProperties(XFA_ELEMENT eElement, | 236 const XFA_PROPERTY* XFA_GetElementProperties(XFA_ELEMENT eElement, |
239 int32_t& iCount) { | 237 int32_t& iCount) { |
240 if (eElement >= g_iXFAElementCount) { | 238 if (eElement >= g_iXFAElementCount) { |
241 return NULL; | 239 return NULL; |
242 } | 240 } |
243 const XFA_ELEMENTHIERARCHY* pElement = g_XFAElementPropertyIndex + eElement; | 241 const XFA_ELEMENTHIERARCHY* pElement = g_XFAElementPropertyIndex + eElement; |
244 iCount = pElement->wCount; | 242 iCount = pElement->wCount; |
245 return g_XFAElementPropertyData + pElement->wStart; | 243 return g_XFAElementPropertyData + pElement->wStart; |
(...skipping 321 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
567 m_iPosition += iMaxLength; | 565 m_iPosition += iMaxLength; |
568 bEOS = IsEOF(); | 566 bEOS = IsEOF(); |
569 return iMaxLength; | 567 return iMaxLength; |
570 } | 568 } |
571 uint16_t CXFA_WideTextRead::GetCodePage() const { | 569 uint16_t CXFA_WideTextRead::GetCodePage() const { |
572 return (sizeof(FX_WCHAR) == 2) ? FX_CODEPAGE_UTF16LE : FX_CODEPAGE_UTF32LE; | 570 return (sizeof(FX_WCHAR) == 2) ? FX_CODEPAGE_UTF16LE : FX_CODEPAGE_UTF32LE; |
573 } | 571 } |
574 uint16_t CXFA_WideTextRead::SetCodePage(uint16_t wCodePage) { | 572 uint16_t CXFA_WideTextRead::SetCodePage(uint16_t wCodePage) { |
575 return GetCodePage(); | 573 return GetCodePage(); |
576 } | 574 } |
OLD | NEW |