| 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_cssstylesheet.h" | 7 #include "xfa/fde/css/fde_cssstylesheet.h" |
| 8 | 8 |
| 9 #include "xfa/fde/css/fde_cssdatatable.h" | 9 #include "xfa/fde/css/fde_cssdatatable.h" |
| 10 #include "xfa/fde/css/fde_csssyntax.h" | 10 #include "xfa/fde/css/fde_csssyntax.h" |
| (...skipping 132 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 143 | 143 |
| 144 CFDE_CSSSyntaxParser* pSyntax = new CFDE_CSSSyntaxParser; | 144 CFDE_CSSSyntaxParser* pSyntax = new CFDE_CSSSyntaxParser; |
| 145 FX_BOOL bRet = pSyntax->Init(pBuffer, iBufSize) && LoadFromSyntax(pSyntax); | 145 FX_BOOL bRet = pSyntax->Init(pBuffer, iBufSize) && LoadFromSyntax(pSyntax); |
| 146 pSyntax->Release(); | 146 pSyntax->Release(); |
| 147 m_wCodePage = wCodePage; | 147 m_wCodePage = wCodePage; |
| 148 m_szUrl = szUrl; | 148 m_szUrl = szUrl; |
| 149 return bRet; | 149 return bRet; |
| 150 } | 150 } |
| 151 FX_BOOL CFDE_CSSStyleSheet::LoadFromSyntax(CFDE_CSSSyntaxParser* pSyntax) { | 151 FX_BOOL CFDE_CSSStyleSheet::LoadFromSyntax(CFDE_CSSSyntaxParser* pSyntax) { |
| 152 Reset(); | 152 Reset(); |
| 153 m_pAllocator = FX_CreateAllocator(FX_ALLOCTYPE_Static, 1024, 0); | 153 m_pAllocator = IFX_MemoryAllocator::Create(FX_ALLOCTYPE_Static, 1024, 0); |
| 154 if (m_pAllocator == NULL) { | |
| 155 return FALSE; | |
| 156 } | |
| 157 FDE_CSSSYNTAXSTATUS eStatus; | 154 FDE_CSSSYNTAXSTATUS eStatus; |
| 158 do { | 155 do { |
| 159 switch (eStatus = pSyntax->DoSyntaxParse()) { | 156 switch (eStatus = pSyntax->DoSyntaxParse()) { |
| 160 case FDE_CSSSYNTAXSTATUS_StyleRule: | 157 case FDE_CSSSYNTAXSTATUS_StyleRule: |
| 161 eStatus = LoadStyleRule(pSyntax, m_RuleArray); | 158 eStatus = LoadStyleRule(pSyntax, m_RuleArray); |
| 162 break; | 159 break; |
| 163 case FDE_CSSSYNTAXSTATUS_MediaRule: | 160 case FDE_CSSSYNTAXSTATUS_MediaRule: |
| 164 eStatus = LoadMediaRule(pSyntax); | 161 eStatus = LoadMediaRule(pSyntax); |
| 165 break; | 162 break; |
| 166 case FDE_CSSSYNTAXSTATUS_FontFaceRule: | 163 case FDE_CSSSYNTAXSTATUS_FontFaceRule: |
| (...skipping 183 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 350 case FDE_CSSSYNTAXSTATUS_PropertyName: | 347 case FDE_CSSSYNTAXSTATUS_PropertyName: |
| 351 case FDE_CSSSYNTAXSTATUS_PropertyValue: | 348 case FDE_CSSSYNTAXSTATUS_PropertyValue: |
| 352 break; | 349 break; |
| 353 case FDE_CSSSYNTAXSTATUS_DeclClose: | 350 case FDE_CSSSYNTAXSTATUS_DeclClose: |
| 354 return FDE_CSSSYNTAXSTATUS_None; | 351 return FDE_CSSSYNTAXSTATUS_None; |
| 355 FDE_CSSSWITCHDEFAULTS(); | 352 FDE_CSSSWITCHDEFAULTS(); |
| 356 } | 353 } |
| 357 } | 354 } |
| 358 return FDE_CSSSYNTAXSTATUS_None; | 355 return FDE_CSSSYNTAXSTATUS_None; |
| 359 } | 356 } |
| 360 void CFDE_CSSStyleRule::SetSelector(IFX_MEMAllocator* pStaticStore, | 357 void CFDE_CSSStyleRule::SetSelector(IFX_MemoryAllocator* pStaticStore, |
| 361 const CFDE_CSSSelectorArray& list) { | 358 const CFDE_CSSSelectorArray& list) { |
| 362 ASSERT(m_ppSelector == NULL); | 359 ASSERT(m_ppSelector == NULL); |
| 363 m_iSelectors = list.GetSize(); | 360 m_iSelectors = list.GetSize(); |
| 364 m_ppSelector = static_cast<CFDE_CSSSelector**>( | 361 m_ppSelector = static_cast<CFDE_CSSSelector**>( |
| 365 pStaticStore->Alloc(m_iSelectors * sizeof(CFDE_CSSSelector*))); | 362 pStaticStore->Alloc(m_iSelectors * sizeof(CFDE_CSSSelector*))); |
| 366 for (int32_t i = 0; i < m_iSelectors; ++i) { | 363 for (int32_t i = 0; i < m_iSelectors; ++i) { |
| 367 m_ppSelector[i] = list.GetAt(i); | 364 m_ppSelector[i] = list.GetAt(i); |
| 368 } | 365 } |
| 369 } | 366 } |
| 370 CFDE_CSSMediaRule::~CFDE_CSSMediaRule() { | 367 CFDE_CSSMediaRule::~CFDE_CSSMediaRule() { |
| (...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 402 FX_WCHAR wch = *psz; | 399 FX_WCHAR wch = *psz; |
| 403 if (FDE_IsCSSChar(wch) || (wch >= '0' && wch <= '9') || wch == '_' || | 400 if (FDE_IsCSSChar(wch) || (wch >= '0' && wch <= '9') || wch == '_' || |
| 404 wch == '-') { | 401 wch == '-') { |
| 405 ++psz; | 402 ++psz; |
| 406 } else { | 403 } else { |
| 407 break; | 404 break; |
| 408 } | 405 } |
| 409 } | 406 } |
| 410 return psz - pStart; | 407 return psz - pStart; |
| 411 } | 408 } |
| 412 CFDE_CSSSelector* CFDE_CSSSelector::FromString(IFX_MEMAllocator* pStaticStore, | 409 CFDE_CSSSelector* CFDE_CSSSelector::FromString( |
| 413 const FX_WCHAR* psz, | 410 IFX_MemoryAllocator* pStaticStore, |
| 414 int32_t iLen) { | 411 const FX_WCHAR* psz, |
| 412 int32_t iLen) { |
| 415 ASSERT(pStaticStore != NULL && psz != NULL && iLen > 0); | 413 ASSERT(pStaticStore != NULL && psz != NULL && iLen > 0); |
| 416 const FX_WCHAR* pStart = psz; | 414 const FX_WCHAR* pStart = psz; |
| 417 const FX_WCHAR* pEnd = psz + iLen; | 415 const FX_WCHAR* pEnd = psz + iLen; |
| 418 for (; psz < pEnd; ++psz) { | 416 for (; psz < pEnd; ++psz) { |
| 419 switch (*psz) { | 417 switch (*psz) { |
| 420 case '>': | 418 case '>': |
| 421 case '[': | 419 case '[': |
| 422 case '+': | 420 case '+': |
| 423 return NULL; | 421 return NULL; |
| 424 } | 422 } |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 497 return NULL; | 495 return NULL; |
| 498 } | 496 } |
| 499 } | 497 } |
| 500 if (pPersudoFirst == NULL) { | 498 if (pPersudoFirst == NULL) { |
| 501 return pFirst; | 499 return pFirst; |
| 502 } else { | 500 } else { |
| 503 pPersudoLast->SetNext(pFirst); | 501 pPersudoLast->SetNext(pFirst); |
| 504 return pPersudoFirst; | 502 return pPersudoFirst; |
| 505 } | 503 } |
| 506 } | 504 } |
| OLD | NEW |