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/fde/css/fde_cssdatatable.h" | 7 #include "xfa/fde/css/fde_cssdatatable.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" | 10 #include "xfa/fgas/crt/fgas_algorithm.h" |
(...skipping 539 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
550 {0xF6EFFF31, 0xff008000}, | 550 {0xF6EFFF31, 0xff008000}, |
551 }; | 551 }; |
552 static const FDE_CSSPERSUDOTABLE g_FDE_CSSPersudoType[] = { | 552 static const FDE_CSSPERSUDOTABLE g_FDE_CSSPersudoType[] = { |
553 {FDE_CSSPERSUDO_After, L":after", 0x16EE1FEC}, | 553 {FDE_CSSPERSUDO_After, L":after", 0x16EE1FEC}, |
554 {FDE_CSSPERSUDO_Before, L":before", 0x7DCDDE2D}, | 554 {FDE_CSSPERSUDO_Before, L":before", 0x7DCDDE2D}, |
555 }; | 555 }; |
556 FDE_LPCCSSPERSUDOTABLE FDE_GetCSSPersudoByEnum(FDE_CSSPERSUDO ePersudo) { | 556 FDE_LPCCSSPERSUDOTABLE FDE_GetCSSPersudoByEnum(FDE_CSSPERSUDO ePersudo) { |
557 return (ePersudo < FDE_CSSPERSUDO_NONE) ? (g_FDE_CSSPersudoType + ePersudo) | 557 return (ePersudo < FDE_CSSPERSUDO_NONE) ? (g_FDE_CSSPersudoType + ePersudo) |
558 : NULL; | 558 : NULL; |
559 } | 559 } |
560 FDE_LPCCSSPROPERTYTABLE FDE_GetCSSPropertyByName( | 560 const FDE_CSSPROPERTYTABLE* FDE_GetCSSPropertyByName( |
561 const CFX_WideStringC& wsName) { | 561 const CFX_WideStringC& wsName) { |
562 ASSERT(!wsName.IsEmpty()); | 562 ASSERT(!wsName.IsEmpty()); |
563 uint32_t dwHash = FX_HashCode_GetW(wsName, true); | 563 uint32_t dwHash = FX_HashCode_GetW(wsName, true); |
564 int32_t iEnd = FDE_CSSPROPERTY_MAX - 1; | 564 int32_t iEnd = FDE_CSSPROPERTY_MAX - 1; |
565 int32_t iMid, iStart = 0; | 565 int32_t iMid, iStart = 0; |
566 uint32_t dwMid; | 566 uint32_t dwMid; |
567 do { | 567 do { |
568 iMid = (iStart + iEnd) / 2; | 568 iMid = (iStart + iEnd) / 2; |
569 dwMid = g_FDE_CSSProperties[iMid].dwHash; | 569 dwMid = g_FDE_CSSProperties[iMid].dwHash; |
570 if (dwHash == dwMid) { | 570 if (dwHash == dwMid) { |
571 return g_FDE_CSSProperties + iMid; | 571 return g_FDE_CSSProperties + iMid; |
572 } else if (dwHash > dwMid) { | 572 } else if (dwHash > dwMid) { |
573 iStart = iMid + 1; | 573 iStart = iMid + 1; |
574 } else { | 574 } else { |
575 iEnd = iMid - 1; | 575 iEnd = iMid - 1; |
576 } | 576 } |
577 } while (iStart <= iEnd); | 577 } while (iStart <= iEnd); |
578 return NULL; | 578 return NULL; |
579 } | 579 } |
580 FDE_LPCCSSPROPERTYTABLE FDE_GetCSSPropertyByEnum(FDE_CSSPROPERTY eName) { | 580 const FDE_CSSPROPERTYTABLE* FDE_GetCSSPropertyByEnum(FDE_CSSPROPERTY eName) { |
581 return (eName < FDE_CSSPROPERTY_MAX) ? (g_FDE_CSSProperties + eName) : NULL; | 581 return (eName < FDE_CSSPROPERTY_MAX) ? (g_FDE_CSSProperties + eName) : NULL; |
582 } | 582 } |
583 FDE_LPCCSSPROPERTYVALUETABLE FDE_GetCSSPropertyValueByName( | 583 const FDE_CSSPROPERTYVALUETABLE* FDE_GetCSSPropertyValueByName( |
584 const CFX_WideStringC& wsName) { | 584 const CFX_WideStringC& wsName) { |
585 ASSERT(!wsName.IsEmpty()); | 585 ASSERT(!wsName.IsEmpty()); |
586 uint32_t dwHash = FX_HashCode_GetW(wsName, true); | 586 uint32_t dwHash = FX_HashCode_GetW(wsName, true); |
587 int32_t iEnd = FDE_CSSPROPERTYVALUE_MAX - 1; | 587 int32_t iEnd = FDE_CSSPROPERTYVALUE_MAX - 1; |
588 int32_t iMid, iStart = 0; | 588 int32_t iMid, iStart = 0; |
589 uint32_t dwMid; | 589 uint32_t dwMid; |
590 do { | 590 do { |
591 iMid = (iStart + iEnd) / 2; | 591 iMid = (iStart + iEnd) / 2; |
592 dwMid = g_FDE_CSSPropertyValues[iMid].dwHash; | 592 dwMid = g_FDE_CSSPropertyValues[iMid].dwHash; |
593 if (dwHash == dwMid) { | 593 if (dwHash == dwMid) { |
594 return g_FDE_CSSPropertyValues + iMid; | 594 return g_FDE_CSSPropertyValues + iMid; |
595 } else if (dwHash > dwMid) { | 595 } else if (dwHash > dwMid) { |
596 iStart = iMid + 1; | 596 iStart = iMid + 1; |
597 } else { | 597 } else { |
598 iEnd = iMid - 1; | 598 iEnd = iMid - 1; |
599 } | 599 } |
600 } while (iStart <= iEnd); | 600 } while (iStart <= iEnd); |
601 return NULL; | 601 return NULL; |
602 } | 602 } |
603 FDE_LPCCSSPROPERTYVALUETABLE FDE_GetCSSPropertyValueByEnum( | 603 const FDE_CSSPROPERTYVALUETABLE* FDE_GetCSSPropertyValueByEnum( |
604 FDE_CSSPROPERTYVALUE eName) { | 604 FDE_CSSPROPERTYVALUE eName) { |
605 return (eName < FDE_CSSPROPERTYVALUE_MAX) ? (g_FDE_CSSPropertyValues + eName) | 605 return (eName < FDE_CSSPROPERTYVALUE_MAX) ? (g_FDE_CSSPropertyValues + eName) |
606 : NULL; | 606 : NULL; |
607 } | 607 } |
608 FDE_LPCCSSMEDIATYPETABLE FDE_GetCSSMediaTypeByName( | 608 FDE_LPCCSSMEDIATYPETABLE FDE_GetCSSMediaTypeByName( |
609 const CFX_WideStringC& wsName) { | 609 const CFX_WideStringC& wsName) { |
610 ASSERT(!wsName.IsEmpty()); | 610 ASSERT(!wsName.IsEmpty()); |
611 uint16_t wHash = FX_HashCode_GetW(wsName, true); | 611 uint16_t wHash = FX_HashCode_GetW(wsName, true); |
612 int32_t iEnd = | 612 int32_t iEnd = |
613 sizeof(g_FDE_CSSMediaTypes) / sizeof(FDE_CSSMEDIATYPETABLE) - 1; | 613 sizeof(g_FDE_CSSMediaTypes) / sizeof(FDE_CSSMEDIATYPETABLE) - 1; |
(...skipping 266 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
880 } | 880 } |
881 while (iBracketCount > 0 && m_pCur < m_pEnd) { | 881 while (iBracketCount > 0 && m_pCur < m_pEnd) { |
882 if (*m_pCur == ')') { | 882 if (*m_pCur == ')') { |
883 iBracketCount--; | 883 iBracketCount--; |
884 } | 884 } |
885 m_pCur++; | 885 m_pCur++; |
886 } | 886 } |
887 } | 887 } |
888 return m_pCur - pStart; | 888 return m_pCur - pStart; |
889 } | 889 } |
OLD | NEW |