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

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

Issue 2616813002: Remove CFX_MapPtrToPtr from xfa/fde. (Closed)
Patch Set: no FDE_LPC* Created 3 years, 11 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_cssstyleselector.cpp ('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 "xfa/fde/css/fde_cssstylesheet.h" 7 #include "xfa/fde/css/fde_cssstylesheet.h"
8 8
9 #include <memory> 9 #include <memory>
10 10
(...skipping 191 matching lines...) Expand 10 before | Expand all | Expand 10 after
202 202
203 FDE_CSSSYNTAXSTATUS CFDE_CSSStyleSheet::LoadMediaRule( 203 FDE_CSSSYNTAXSTATUS CFDE_CSSStyleSheet::LoadMediaRule(
204 CFDE_CSSSyntaxParser* pSyntax) { 204 CFDE_CSSSyntaxParser* pSyntax) {
205 uint32_t dwMediaList = 0; 205 uint32_t dwMediaList = 0;
206 CFDE_CSSMediaRule* pMediaRule = nullptr; 206 CFDE_CSSMediaRule* pMediaRule = nullptr;
207 for (;;) { 207 for (;;) {
208 switch (pSyntax->DoSyntaxParse()) { 208 switch (pSyntax->DoSyntaxParse()) {
209 case FDE_CSSSYNTAXSTATUS_MediaType: { 209 case FDE_CSSSYNTAXSTATUS_MediaType: {
210 int32_t iLen; 210 int32_t iLen;
211 const FX_WCHAR* psz = pSyntax->GetCurrentString(iLen); 211 const FX_WCHAR* psz = pSyntax->GetCurrentString(iLen);
212 FDE_LPCCSSMEDIATYPETABLE pMediaType = 212 const FDE_CSSMEDIATYPETABLE* pMediaType =
213 FDE_GetCSSMediaTypeByName(CFX_WideStringC(psz, iLen)); 213 FDE_GetCSSMediaTypeByName(CFX_WideStringC(psz, iLen));
214 if (pMediaType) 214 if (pMediaType)
215 dwMediaList |= pMediaType->wValue; 215 dwMediaList |= pMediaType->wValue;
216 } break; 216 } break;
217 case FDE_CSSSYNTAXSTATUS_StyleRule: 217 case FDE_CSSSYNTAXSTATUS_StyleRule:
218 if (pMediaRule) { 218 if (pMediaRule) {
219 FDE_CSSSYNTAXSTATUS eStatus = 219 FDE_CSSSYNTAXSTATUS eStatus =
220 LoadStyleRule(pSyntax, pMediaRule->GetArray()); 220 LoadStyleRule(pSyntax, pMediaRule->GetArray());
221 if (eStatus < FDE_CSSSYNTAXSTATUS_None) { 221 if (eStatus < FDE_CSSSYNTAXSTATUS_None) {
222 return eStatus; 222 return eStatus;
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
431 } 431 }
432 432
433 IFDE_CSSRule* CFDE_CSSMediaRule::GetRule(int32_t index) { 433 IFDE_CSSRule* CFDE_CSSMediaRule::GetRule(int32_t index) {
434 return m_RuleArray.GetAt(index); 434 return m_RuleArray.GetAt(index);
435 } 435 }
436 436
437 bool FDE_IsCSSChar(FX_WCHAR wch) { 437 bool FDE_IsCSSChar(FX_WCHAR wch) {
438 return (wch >= 'a' && wch <= 'z') || (wch >= 'A' && wch <= 'Z'); 438 return (wch >= 'a' && wch <= 'z') || (wch >= 'A' && wch <= 'Z');
439 } 439 }
440 440
441 int32_t FDE_GetCSSPersudoLen(const FX_WCHAR* psz, const FX_WCHAR* pEnd) { 441 int32_t FDE_GetCSSPseudoLen(const FX_WCHAR* psz, const FX_WCHAR* pEnd) {
442 ASSERT(*psz == ':'); 442 ASSERT(*psz == ':');
443 const FX_WCHAR* pStart = psz; 443 const FX_WCHAR* pStart = psz;
444 while (psz < pEnd) { 444 while (psz < pEnd) {
445 FX_WCHAR wch = *psz; 445 FX_WCHAR wch = *psz;
446 if (FDE_IsCSSChar(wch) || wch == ':') { 446 if (FDE_IsCSSChar(wch) || wch == ':') {
447 ++psz; 447 ++psz;
448 } else { 448 } else {
449 break; 449 break;
450 } 450 }
451 } 451 }
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
497 for (; psz < pEnd; ++psz) { 497 for (; psz < pEnd; ++psz) {
498 switch (*psz) { 498 switch (*psz) {
499 case '>': 499 case '>':
500 case '[': 500 case '[':
501 case '+': 501 case '+':
502 return nullptr; 502 return nullptr;
503 } 503 }
504 } 504 }
505 CFDE_CSSSelector* pFirst = nullptr; 505 CFDE_CSSSelector* pFirst = nullptr;
506 CFDE_CSSSelector* pLast = nullptr; 506 CFDE_CSSSelector* pLast = nullptr;
507 CFDE_CSSSelector* pPersudoFirst = nullptr; 507 CFDE_CSSSelector* pPseudoFirst = nullptr;
508 CFDE_CSSSelector* pPersudoLast = nullptr; 508 CFDE_CSSSelector* pPseudoLast = nullptr;
509 for (psz = pStart; psz < pEnd;) { 509 for (psz = pStart; psz < pEnd;) {
510 FX_WCHAR wch = *psz; 510 FX_WCHAR wch = *psz;
511 if (wch == '.' || wch == '#') { 511 if (wch == '.' || wch == '#') {
512 if (psz == pStart || psz[-1] == ' ') { 512 if (psz == pStart || psz[-1] == ' ') {
513 CFDE_CSSSelector* p = FXTARGET_NewWith(pStaticStore) 513 CFDE_CSSSelector* p = FXTARGET_NewWith(pStaticStore)
514 CFDE_CSSSelector(FDE_CSSSELECTORTYPE_Element, L"*", 1, true); 514 CFDE_CSSSelector(FDE_CSSSELECTORTYPE_Element, L"*", 1, true);
515 if (!p) 515 if (!p)
516 return nullptr; 516 return nullptr;
517 517
518 if (pFirst) { 518 if (pFirst) {
(...skipping 29 matching lines...) Expand all
548 return nullptr; 548 return nullptr;
549 549
550 if (pFirst) { 550 if (pFirst) {
551 pFirst->SetType(FDE_CSSSELECTORTYPE_Descendant); 551 pFirst->SetType(FDE_CSSSELECTORTYPE_Descendant);
552 p->SetNext(pFirst); 552 p->SetNext(pFirst);
553 } 553 }
554 pFirst = p; 554 pFirst = p;
555 pLast = p; 555 pLast = p;
556 psz += iNameLen; 556 psz += iNameLen;
557 } else if (wch == ':') { 557 } else if (wch == ':') {
558 int32_t iNameLen = FDE_GetCSSPersudoLen(psz, pEnd); 558 int32_t iNameLen = FDE_GetCSSPseudoLen(psz, pEnd);
559 if (iNameLen == 0) { 559 if (iNameLen == 0) {
560 return nullptr; 560 return nullptr;
561 } 561 }
562 CFDE_CSSSelector* p = FXTARGET_NewWith(pStaticStore) 562 CFDE_CSSSelector* p = FXTARGET_NewWith(pStaticStore)
563 CFDE_CSSSelector(FDE_CSSSELECTORTYPE_Persudo, psz, iNameLen, true); 563 CFDE_CSSSelector(FDE_CSSSELECTORTYPE_Pseudo, psz, iNameLen, true);
564 if (!p) 564 if (!p)
565 return nullptr; 565 return nullptr;
566 566
567 if (pPersudoFirst) 567 if (pPseudoFirst)
568 pPersudoLast->SetNext(p); 568 pPseudoLast->SetNext(p);
569 else 569 else
570 pPersudoFirst = p; 570 pPseudoFirst = p;
571 pPersudoLast = p; 571 pPseudoLast = p;
572 psz += iNameLen; 572 psz += iNameLen;
573 } else if (wch == ' ') { 573 } else if (wch == ' ') {
574 psz++; 574 psz++;
575 } else { 575 } else {
576 return nullptr; 576 return nullptr;
577 } 577 }
578 } 578 }
579 if (!pPersudoFirst) 579 if (!pPseudoFirst)
580 return pFirst; 580 return pFirst;
581 581
582 pPersudoLast->SetNext(pFirst); 582 pPseudoLast->SetNext(pFirst);
583 return pPersudoFirst; 583 return pPseudoFirst;
584 } 584 }
585 585
586 CFDE_CSSDeclaration* CFDE_CSSFontFaceRule::GetDeclaration() { 586 CFDE_CSSDeclaration* CFDE_CSSFontFaceRule::GetDeclaration() {
587 return &m_Declaration; 587 return &m_Declaration;
588 } 588 }
OLDNEW
« no previous file with comments | « xfa/fde/css/fde_cssstyleselector.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698