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

Side by Side Diff: xfa/fde/css/fde_cssdatatable.cpp

Issue 2031873003: Get rid of NULLs in xfa/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium@nullptr_fpdfsdk
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 | « xfa/fde/css/fde_cssdatatable.h ('k') | xfa/fde/css/fde_cssdeclaration.cpp » ('j') | 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 "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_codepage.h" 10 #include "xfa/fgas/crt/fgas_codepage.h"
(...skipping 19 matching lines...) Expand all
30 return TRUE; 30 return TRUE;
31 default: 31 default:
32 return FALSE; 32 return FALSE;
33 } 33 }
34 } 34 }
35 CFX_FloatRect FDE_CSSBoundaryToRect(IFDE_CSSBoundaryStyle* pBoundStyle, 35 CFX_FloatRect FDE_CSSBoundaryToRect(IFDE_CSSBoundaryStyle* pBoundStyle,
36 FX_FLOAT fContainerWidth, 36 FX_FLOAT fContainerWidth,
37 FX_BOOL bPadding, 37 FX_BOOL bPadding,
38 FX_BOOL bBorder, 38 FX_BOOL bBorder,
39 FX_BOOL bMargin) { 39 FX_BOOL bMargin) {
40 ASSERT(pBoundStyle != NULL);
41 FX_FLOAT fResult; 40 FX_FLOAT fResult;
42 const FDE_CSSRECT* pRect; 41 const FDE_CSSRECT* pRect;
43 CFX_FloatRect rect(0, 0, 0, 0); 42 CFX_FloatRect rect(0, 0, 0, 0);
44 if (bPadding) { 43 if (bPadding) {
45 pRect = pBoundStyle->GetPaddingWidth(); 44 pRect = pBoundStyle->GetPaddingWidth();
46 if (pRect != NULL) { 45 if (pRect) {
47 if (FDE_CSSLengthToFloat(pRect->left, fContainerWidth, fResult)) { 46 if (FDE_CSSLengthToFloat(pRect->left, fContainerWidth, fResult)) {
48 rect.left += fResult; 47 rect.left += fResult;
49 } 48 }
50 if (FDE_CSSLengthToFloat(pRect->top, fContainerWidth, fResult)) { 49 if (FDE_CSSLengthToFloat(pRect->top, fContainerWidth, fResult)) {
51 rect.top += fResult; 50 rect.top += fResult;
52 } 51 }
53 if (FDE_CSSLengthToFloat(pRect->right, fContainerWidth, fResult)) { 52 if (FDE_CSSLengthToFloat(pRect->right, fContainerWidth, fResult)) {
54 rect.right += fResult; 53 rect.right += fResult;
55 } 54 }
56 if (FDE_CSSLengthToFloat(pRect->bottom, fContainerWidth, fResult)) { 55 if (FDE_CSSLengthToFloat(pRect->bottom, fContainerWidth, fResult)) {
57 rect.bottom += fResult; 56 rect.bottom += fResult;
58 } 57 }
59 } 58 }
60 } 59 }
61 if (bBorder) { 60 if (bBorder) {
62 pRect = pBoundStyle->GetBorderWidth(); 61 pRect = pBoundStyle->GetBorderWidth();
63 if (pRect != NULL) { 62 if (pRect) {
64 if (FDE_CSSLengthToFloat(pRect->left, fContainerWidth, fResult)) { 63 if (FDE_CSSLengthToFloat(pRect->left, fContainerWidth, fResult)) {
65 rect.left += fResult; 64 rect.left += fResult;
66 } 65 }
67 if (FDE_CSSLengthToFloat(pRect->top, fContainerWidth, fResult)) { 66 if (FDE_CSSLengthToFloat(pRect->top, fContainerWidth, fResult)) {
68 rect.top += fResult; 67 rect.top += fResult;
69 } 68 }
70 if (FDE_CSSLengthToFloat(pRect->right, fContainerWidth, fResult)) { 69 if (FDE_CSSLengthToFloat(pRect->right, fContainerWidth, fResult)) {
71 rect.right += fResult; 70 rect.right += fResult;
72 } 71 }
73 if (FDE_CSSLengthToFloat(pRect->bottom, fContainerWidth, fResult)) { 72 if (FDE_CSSLengthToFloat(pRect->bottom, fContainerWidth, fResult)) {
74 rect.bottom += fResult; 73 rect.bottom += fResult;
75 } 74 }
76 } 75 }
77 } 76 }
78 if (bMargin) { 77 if (bMargin) {
79 pRect = pBoundStyle->GetMarginWidth(); 78 pRect = pBoundStyle->GetMarginWidth();
80 if (pRect != NULL) { 79 if (pRect) {
81 if (FDE_CSSLengthToFloat(pRect->left, fContainerWidth, fResult)) { 80 if (FDE_CSSLengthToFloat(pRect->left, fContainerWidth, fResult)) {
82 rect.left += fResult; 81 rect.left += fResult;
83 } 82 }
84 if (FDE_CSSLengthToFloat(pRect->top, fContainerWidth, fResult)) { 83 if (FDE_CSSLengthToFloat(pRect->top, fContainerWidth, fResult)) {
85 rect.top += fResult; 84 rect.top += fResult;
86 } 85 }
87 if (FDE_CSSLengthToFloat(pRect->right, fContainerWidth, fResult)) { 86 if (FDE_CSSLengthToFloat(pRect->right, fContainerWidth, fResult)) {
88 rect.right += fResult; 87 rect.right += fResult;
89 } 88 }
90 if (FDE_CSSLengthToFloat(pRect->bottom, fContainerWidth, fResult)) { 89 if (FDE_CSSLengthToFloat(pRect->bottom, fContainerWidth, fResult)) {
91 rect.bottom += fResult; 90 rect.bottom += fResult;
92 } 91 }
93 } 92 }
94 } 93 }
95 return rect; 94 return rect;
96 } 95 }
97 uint32_t FDE_CSSFontStyleToFDE(IFDE_CSSFontStyle* pFontStyle) { 96 uint32_t FDE_CSSFontStyleToFDE(IFDE_CSSFontStyle* pFontStyle) {
98 ASSERT(pFontStyle != NULL);
99 uint32_t dwFontStyle = FX_FONTSTYLE_Normal; 97 uint32_t dwFontStyle = FX_FONTSTYLE_Normal;
100 if (pFontStyle->GetFontStyle() == FDE_CSSFONTSTYLE_Italic) { 98 if (pFontStyle->GetFontStyle() == FDE_CSSFONTSTYLE_Italic) {
101 dwFontStyle |= FX_FONTSTYLE_Italic; 99 dwFontStyle |= FX_FONTSTYLE_Italic;
102 } 100 }
103 if (pFontStyle->GetFontWeight() >= 700) { 101 if (pFontStyle->GetFontWeight() >= 700) {
104 dwFontStyle |= FX_FONTSTYLE_Bold; 102 dwFontStyle |= FX_FONTSTYLE_Bold;
105 } 103 }
106 return dwFontStyle; 104 return dwFontStyle;
107 } 105 }
108 static const FDE_CSSPROPERTYTABLE g_FDE_CSSProperties[] = { 106 static const FDE_CSSPROPERTYTABLE g_FDE_CSSProperties[] = {
(...skipping 446 matching lines...) Expand 10 before | Expand all | Expand 10 after
555 {0xB6D2CF1F, 0xff808000}, {0xD19B5E1C, 0xffffff00}, 553 {0xB6D2CF1F, 0xff808000}, {0xD19B5E1C, 0xffffff00},
556 {0xDB64391D, 0xff000000}, {0xF616D507, 0xff00ff00}, 554 {0xDB64391D, 0xff000000}, {0xF616D507, 0xff00ff00},
557 {0xF6EFFF31, 0xff008000}, 555 {0xF6EFFF31, 0xff008000},
558 }; 556 };
559 static const FDE_CSSPERSUDOTABLE g_FDE_CSSPersudoType[] = { 557 static const FDE_CSSPERSUDOTABLE g_FDE_CSSPersudoType[] = {
560 {FDE_CSSPERSUDO_After, L":after", 0x16EE1FEC}, 558 {FDE_CSSPERSUDO_After, L":after", 0x16EE1FEC},
561 {FDE_CSSPERSUDO_Before, L":before", 0x7DCDDE2D}, 559 {FDE_CSSPERSUDO_Before, L":before", 0x7DCDDE2D},
562 }; 560 };
563 FDE_LPCCSSPERSUDOTABLE FDE_GetCSSPersudoByEnum(FDE_CSSPERSUDO ePersudo) { 561 FDE_LPCCSSPERSUDOTABLE FDE_GetCSSPersudoByEnum(FDE_CSSPERSUDO ePersudo) {
564 return (ePersudo < FDE_CSSPERSUDO_NONE) ? (g_FDE_CSSPersudoType + ePersudo) 562 return (ePersudo < FDE_CSSPERSUDO_NONE) ? (g_FDE_CSSPersudoType + ePersudo)
565 : NULL; 563 : nullptr;
566 } 564 }
567 const FDE_CSSPROPERTYTABLE* FDE_GetCSSPropertyByName( 565 const FDE_CSSPROPERTYTABLE* FDE_GetCSSPropertyByName(
568 const CFX_WideStringC& wsName) { 566 const CFX_WideStringC& wsName) {
569 ASSERT(!wsName.IsEmpty()); 567 ASSERT(!wsName.IsEmpty());
570 uint32_t dwHash = FX_HashCode_GetW(wsName, true); 568 uint32_t dwHash = FX_HashCode_GetW(wsName, true);
571 int32_t iEnd = FDE_CSSPROPERTY_MAX - 1; 569 int32_t iEnd = FDE_CSSPROPERTY_MAX - 1;
572 int32_t iMid, iStart = 0; 570 int32_t iMid, iStart = 0;
573 uint32_t dwMid; 571 uint32_t dwMid;
574 do { 572 do {
575 iMid = (iStart + iEnd) / 2; 573 iMid = (iStart + iEnd) / 2;
576 dwMid = g_FDE_CSSProperties[iMid].dwHash; 574 dwMid = g_FDE_CSSProperties[iMid].dwHash;
577 if (dwHash == dwMid) { 575 if (dwHash == dwMid) {
578 return g_FDE_CSSProperties + iMid; 576 return g_FDE_CSSProperties + iMid;
579 } else if (dwHash > dwMid) { 577 } else if (dwHash > dwMid) {
580 iStart = iMid + 1; 578 iStart = iMid + 1;
581 } else { 579 } else {
582 iEnd = iMid - 1; 580 iEnd = iMid - 1;
583 } 581 }
584 } while (iStart <= iEnd); 582 } while (iStart <= iEnd);
585 return NULL; 583 return nullptr;
586 } 584 }
587 const FDE_CSSPROPERTYTABLE* FDE_GetCSSPropertyByEnum(FDE_CSSPROPERTY eName) { 585 const FDE_CSSPROPERTYTABLE* FDE_GetCSSPropertyByEnum(FDE_CSSPROPERTY eName) {
588 return (eName < FDE_CSSPROPERTY_MAX) ? (g_FDE_CSSProperties + eName) : NULL; 586 return (eName < FDE_CSSPROPERTY_MAX) ? (g_FDE_CSSProperties + eName)
587 : nullptr;
589 } 588 }
590 const FDE_CSSPROPERTYVALUETABLE* FDE_GetCSSPropertyValueByName( 589 const FDE_CSSPROPERTYVALUETABLE* FDE_GetCSSPropertyValueByName(
591 const CFX_WideStringC& wsName) { 590 const CFX_WideStringC& wsName) {
592 ASSERT(!wsName.IsEmpty()); 591 ASSERT(!wsName.IsEmpty());
593 uint32_t dwHash = FX_HashCode_GetW(wsName, true); 592 uint32_t dwHash = FX_HashCode_GetW(wsName, true);
594 int32_t iEnd = FDE_CSSPROPERTYVALUE_MAX - 1; 593 int32_t iEnd = FDE_CSSPROPERTYVALUE_MAX - 1;
595 int32_t iMid, iStart = 0; 594 int32_t iMid, iStart = 0;
596 uint32_t dwMid; 595 uint32_t dwMid;
597 do { 596 do {
598 iMid = (iStart + iEnd) / 2; 597 iMid = (iStart + iEnd) / 2;
599 dwMid = g_FDE_CSSPropertyValues[iMid].dwHash; 598 dwMid = g_FDE_CSSPropertyValues[iMid].dwHash;
600 if (dwHash == dwMid) { 599 if (dwHash == dwMid) {
601 return g_FDE_CSSPropertyValues + iMid; 600 return g_FDE_CSSPropertyValues + iMid;
602 } else if (dwHash > dwMid) { 601 } else if (dwHash > dwMid) {
603 iStart = iMid + 1; 602 iStart = iMid + 1;
604 } else { 603 } else {
605 iEnd = iMid - 1; 604 iEnd = iMid - 1;
606 } 605 }
607 } while (iStart <= iEnd); 606 } while (iStart <= iEnd);
608 return NULL; 607 return nullptr;
609 } 608 }
610 const FDE_CSSPROPERTYVALUETABLE* FDE_GetCSSPropertyValueByEnum( 609 const FDE_CSSPROPERTYVALUETABLE* FDE_GetCSSPropertyValueByEnum(
611 FDE_CSSPROPERTYVALUE eName) { 610 FDE_CSSPROPERTYVALUE eName) {
612 return (eName < FDE_CSSPROPERTYVALUE_MAX) ? (g_FDE_CSSPropertyValues + eName) 611 return (eName < FDE_CSSPROPERTYVALUE_MAX) ? (g_FDE_CSSPropertyValues + eName)
613 : NULL; 612 : nullptr;
614 } 613 }
615 FDE_LPCCSSMEDIATYPETABLE FDE_GetCSSMediaTypeByName( 614 FDE_LPCCSSMEDIATYPETABLE FDE_GetCSSMediaTypeByName(
616 const CFX_WideStringC& wsName) { 615 const CFX_WideStringC& wsName) {
617 ASSERT(!wsName.IsEmpty()); 616 ASSERT(!wsName.IsEmpty());
618 uint16_t wHash = FX_HashCode_GetW(wsName, true); 617 uint16_t wHash = FX_HashCode_GetW(wsName, true);
619 int32_t iEnd = 618 int32_t iEnd =
620 sizeof(g_FDE_CSSMediaTypes) / sizeof(FDE_CSSMEDIATYPETABLE) - 1; 619 sizeof(g_FDE_CSSMediaTypes) / sizeof(FDE_CSSMEDIATYPETABLE) - 1;
621 int32_t iMid, iStart = 0; 620 int32_t iMid, iStart = 0;
622 uint16_t uMid; 621 uint16_t uMid;
623 do { 622 do {
624 iMid = (iStart + iEnd) / 2; 623 iMid = (iStart + iEnd) / 2;
625 uMid = g_FDE_CSSMediaTypes[iMid].wHash; 624 uMid = g_FDE_CSSMediaTypes[iMid].wHash;
626 if (wHash == uMid) { 625 if (wHash == uMid) {
627 return g_FDE_CSSMediaTypes + iMid; 626 return g_FDE_CSSMediaTypes + iMid;
628 } else if (wHash > uMid) { 627 } else if (wHash > uMid) {
629 iStart = iMid + 1; 628 iStart = iMid + 1;
630 } else { 629 } else {
631 iEnd = iMid - 1; 630 iEnd = iMid - 1;
632 } 631 }
633 } while (iStart <= iEnd); 632 } while (iStart <= iEnd);
634 return NULL; 633 return nullptr;
635 } 634 }
636 FDE_LPCCSSLENGTHUNITTABLE FDE_GetCSSLengthUnitByName( 635 FDE_LPCCSSLENGTHUNITTABLE FDE_GetCSSLengthUnitByName(
637 const CFX_WideStringC& wsName) { 636 const CFX_WideStringC& wsName) {
638 ASSERT(!wsName.IsEmpty()); 637 ASSERT(!wsName.IsEmpty());
639 uint16_t wHash = FX_HashCode_GetW(wsName, true); 638 uint16_t wHash = FX_HashCode_GetW(wsName, true);
640 int32_t iEnd = 639 int32_t iEnd =
641 sizeof(g_FDE_CSSLengthUnits) / sizeof(FDE_CSSLENGTHUNITTABLE) - 1; 640 sizeof(g_FDE_CSSLengthUnits) / sizeof(FDE_CSSLENGTHUNITTABLE) - 1;
642 int32_t iMid, iStart = 0; 641 int32_t iMid, iStart = 0;
643 uint16_t wMid; 642 uint16_t wMid;
644 do { 643 do {
645 iMid = (iStart + iEnd) / 2; 644 iMid = (iStart + iEnd) / 2;
646 wMid = g_FDE_CSSLengthUnits[iMid].wHash; 645 wMid = g_FDE_CSSLengthUnits[iMid].wHash;
647 if (wHash == wMid) { 646 if (wHash == wMid) {
648 return g_FDE_CSSLengthUnits + iMid; 647 return g_FDE_CSSLengthUnits + iMid;
649 } else if (wHash > wMid) { 648 } else if (wHash > wMid) {
650 iStart = iMid + 1; 649 iStart = iMid + 1;
651 } else { 650 } else {
652 iEnd = iMid - 1; 651 iEnd = iMid - 1;
653 } 652 }
654 } while (iStart <= iEnd); 653 } while (iStart <= iEnd);
655 return NULL; 654 return nullptr;
656 } 655 }
657 FDE_LPCCSSCOLORTABLE FDE_GetCSSColorByName(const CFX_WideStringC& wsName) { 656 FDE_LPCCSSCOLORTABLE FDE_GetCSSColorByName(const CFX_WideStringC& wsName) {
658 ASSERT(!wsName.IsEmpty()); 657 ASSERT(!wsName.IsEmpty());
659 uint32_t dwHash = FX_HashCode_GetW(wsName, true); 658 uint32_t dwHash = FX_HashCode_GetW(wsName, true);
660 int32_t iEnd = sizeof(g_FDE_CSSColors) / sizeof(FDE_CSSCOLORTABLE) - 1; 659 int32_t iEnd = sizeof(g_FDE_CSSColors) / sizeof(FDE_CSSCOLORTABLE) - 1;
661 int32_t iMid, iStart = 0; 660 int32_t iMid, iStart = 0;
662 uint32_t dwMid; 661 uint32_t dwMid;
663 do { 662 do {
664 iMid = (iStart + iEnd) / 2; 663 iMid = (iStart + iEnd) / 2;
665 dwMid = g_FDE_CSSColors[iMid].dwHash; 664 dwMid = g_FDE_CSSColors[iMid].dwHash;
666 if (dwHash == dwMid) { 665 if (dwHash == dwMid) {
667 return g_FDE_CSSColors + iMid; 666 return g_FDE_CSSColors + iMid;
668 } else if (dwHash > dwMid) { 667 } else if (dwHash > dwMid) {
669 iStart = iMid + 1; 668 iStart = iMid + 1;
670 } else { 669 } else {
671 iEnd = iMid - 1; 670 iEnd = iMid - 1;
672 } 671 }
673 } while (iStart <= iEnd); 672 } while (iStart <= iEnd);
674 return NULL; 673 return nullptr;
675 } 674 }
676 675
677 FX_BOOL FDE_ParseCSSNumber(const FX_WCHAR* pszValue, 676 FX_BOOL FDE_ParseCSSNumber(const FX_WCHAR* pszValue,
678 int32_t iValueLen, 677 int32_t iValueLen,
679 FX_FLOAT& fValue, 678 FX_FLOAT& fValue,
680 FDE_CSSPRIMITIVETYPE& eUnit) { 679 FDE_CSSPRIMITIVETYPE& eUnit) {
681 ASSERT(pszValue && iValueLen > 0); 680 ASSERT(pszValue && iValueLen > 0);
682 int32_t iUsedLen = 0; 681 int32_t iUsedLen = 0;
683 fValue = FX_wcstof(pszValue, iValueLen, &iUsedLen); 682 fValue = FX_wcstof(pszValue, iValueLen, &iUsedLen);
684 if (iUsedLen <= 0) 683 if (iUsedLen <= 0)
(...skipping 10 matching lines...) Expand all
695 if (pUnit) 694 if (pUnit)
696 eUnit = (FDE_CSSPRIMITIVETYPE)pUnit->wValue; 695 eUnit = (FDE_CSSPRIMITIVETYPE)pUnit->wValue;
697 } 696 }
698 return TRUE; 697 return TRUE;
699 } 698 }
700 699
701 FX_BOOL FDE_ParseCSSString(const FX_WCHAR* pszValue, 700 FX_BOOL FDE_ParseCSSString(const FX_WCHAR* pszValue,
702 int32_t iValueLen, 701 int32_t iValueLen,
703 int32_t& iOffset, 702 int32_t& iOffset,
704 int32_t& iLength) { 703 int32_t& iLength) {
705 ASSERT(pszValue != NULL && iValueLen > 0); 704 ASSERT(pszValue && iValueLen > 0);
706 iOffset = 0; 705 iOffset = 0;
707 iLength = iValueLen; 706 iLength = iValueLen;
708 if (iValueLen >= 2) { 707 if (iValueLen >= 2) {
709 FX_WCHAR first = pszValue[0], last = pszValue[iValueLen - 1]; 708 FX_WCHAR first = pszValue[0], last = pszValue[iValueLen - 1];
710 if ((first == '\"' && last == '\"') || (first == '\'' && last == '\'')) { 709 if ((first == '\"' && last == '\"') || (first == '\'' && last == '\'')) {
711 iOffset = 1, iLength -= 2; 710 iOffset = 1, iLength -= 2;
712 } 711 }
713 } 712 }
714 return iValueLen > 0; 713 return iValueLen > 0;
715 } 714 }
716 715
717 FX_BOOL FDE_ParseCSSURI(const FX_WCHAR* pszValue, 716 FX_BOOL FDE_ParseCSSURI(const FX_WCHAR* pszValue,
718 int32_t iValueLen, 717 int32_t iValueLen,
719 int32_t& iOffset, 718 int32_t& iOffset,
720 int32_t& iLength) { 719 int32_t& iLength) {
721 ASSERT(pszValue != NULL && iValueLen > 0); 720 ASSERT(pszValue && iValueLen > 0);
722 if (iValueLen < 6 || pszValue[iValueLen - 1] != ')' || 721 if (iValueLen < 6 || pszValue[iValueLen - 1] != ')' ||
723 FX_wcsnicmp(L"url(", pszValue, 4)) { 722 FX_wcsnicmp(L"url(", pszValue, 4)) {
724 return FALSE; 723 return FALSE;
725 } 724 }
726 if (FDE_ParseCSSString(pszValue + 4, iValueLen - 5, iOffset, iLength)) { 725 if (FDE_ParseCSSString(pszValue + 4, iValueLen - 5, iOffset, iLength)) {
727 iOffset += 4; 726 iOffset += 4;
728 return TRUE; 727 return TRUE;
729 } 728 }
730 return FALSE; 729 return FALSE;
731 } 730 }
(...skipping 158 matching lines...) Expand 10 before | Expand all | Expand 10 after
890 } 889 }
891 while (iBracketCount > 0 && m_pCur < m_pEnd) { 890 while (iBracketCount > 0 && m_pCur < m_pEnd) {
892 if (*m_pCur == ')') { 891 if (*m_pCur == ')') {
893 iBracketCount--; 892 iBracketCount--;
894 } 893 }
895 m_pCur++; 894 m_pCur++;
896 } 895 }
897 } 896 }
898 return m_pCur - pStart; 897 return m_pCur - pStart;
899 } 898 }
OLDNEW
« no previous file with comments | « xfa/fde/css/fde_cssdatatable.h ('k') | xfa/fde/css/fde_cssdeclaration.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698