From a31098417852bdf13e693a6e0913e0706cf94098 Mon Sep 17 00:00:00 2001 From: tsepez Date: Thu, 28 Apr 2016 16:56:08 -0700 Subject: Convert CFX_PtrArray to typesafe CFX_ArrayTemplate, Part 6 Review-Url: https://codereview.chromium.org/1926303002 --- xfa/fxfa/fm2js/xfa_fmparse.cpp | 33 +++++++++++++++++---------------- 1 file changed, 17 insertions(+), 16 deletions(-) (limited to 'xfa/fxfa/fm2js/xfa_fmparse.cpp') diff --git a/xfa/fxfa/fm2js/xfa_fmparse.cpp b/xfa/fxfa/fm2js/xfa_fmparse.cpp index a917e23b8b..0a9fa81bad 100644 --- a/xfa/fxfa/fm2js/xfa_fmparse.cpp +++ b/xfa/fxfa/fm2js/xfa_fmparse.cpp @@ -44,9 +44,10 @@ void CXFA_FMParse::Error(uint32_t lineNum, const FX_WCHAR* msg, ...) { va_end(ap); } -CFX_PtrArray* CXFA_FMParse::ParseTopExpression() { +CFX_ArrayTemplate* CXFA_FMParse::ParseTopExpression() { std::unique_ptr e; - CFX_PtrArray* expression = new CFX_PtrArray(); + CFX_ArrayTemplate* expression = + new CFX_ArrayTemplate(); while (1) { if (m_pToken->m_type == TOKeof || m_pToken->m_type == TOKendfunc || m_pToken->m_type == TOKendif || m_pToken->m_type == TOKelseif || @@ -77,7 +78,7 @@ CXFA_FMExpression* CXFA_FMParse::ParseFunction() { std::unique_ptr e; CFX_WideStringC ident; std::unique_ptr pArguments; - std::unique_ptr pExpressions; + std::unique_ptr> pExpressions; uint32_t line = m_pToken->m_uLinenum; NextToken(); if (m_pToken->m_type != TOKidentifier) { @@ -133,7 +134,7 @@ CXFA_FMExpression* CXFA_FMParse::ParseFunction() { pArguments->RemoveAll(); if (pExpressions) { for (int i = 0; i < pExpressions->GetSize(); ++i) - delete static_cast(pExpressions->GetAt(i)); + delete pExpressions->GetAt(i); } } return e.release(); @@ -550,9 +551,9 @@ CXFA_FMSimpleExpression* CXFA_FMParse::ParsePostExpression( switch (m_pToken->m_type) { case TOKlparen: { NextToken(); - std::unique_ptr pArray; + std::unique_ptr> pArray; if (m_pToken->m_type != TOKrparen) { - pArray.reset(new CFX_PtrArray()); + pArray.reset(new CFX_ArrayTemplate()); while (m_pToken->m_type != TOKrparen) { CXFA_FMSimpleExpression* e = ParseSimpleExpression(); if (e) { @@ -588,7 +589,7 @@ CXFA_FMSimpleExpression* CXFA_FMParse::ParsePostExpression( } else { if (pArray) { for (int32_t i = 0; i < pArray->GetSize(); ++i) - delete static_cast(pArray->GetAt(i)); + delete pArray->GetAt(i); } delete e; e = nullptr; @@ -605,9 +606,9 @@ CXFA_FMSimpleExpression* CXFA_FMParse::ParsePostExpression( CXFA_FMSimpleExpression* pExpCall; pExpAccessor = e; NextToken(); - std::unique_ptr pArray; + std::unique_ptr> pArray; if (m_pToken->m_type != TOKrparen) { - pArray.reset(new CFX_PtrArray()); + pArray.reset(new CFX_ArrayTemplate()); while (m_pToken->m_type != TOKrparen) { CXFA_FMSimpleExpression* exp = ParseSimpleExpression(); pArray->Add(exp); @@ -644,10 +645,8 @@ CXFA_FMSimpleExpression* CXFA_FMParse::ParsePostExpression( } } else { if (pArray) { - for (int32_t i = 0; i < pArray->GetSize(); ++i) { - delete static_cast( - pArray->GetAt(i)); - } + for (int32_t i = 0; i < pArray->GetSize(); ++i) + delete pArray->GetAt(i); } delete e; e = nullptr; @@ -809,7 +808,9 @@ CXFA_FMSimpleExpression* CXFA_FMParse::ParseParenExpression() { CXFA_FMExpression* CXFA_FMParse::ParseBlockExpression() { uint32_t line = m_pToken->m_uLinenum; CXFA_FMExpression* e = nullptr; - std::unique_ptr expression(new CFX_PtrArray()); + std::unique_ptr> expression( + new CFX_ArrayTemplate()); + while (1) { switch (m_pToken->m_type) { case TOKeof: @@ -987,7 +988,7 @@ CXFA_FMExpression* CXFA_FMParse::ParseForExpression() { CXFA_FMExpression* CXFA_FMParse::ParseForeachExpression() { std::unique_ptr e; CFX_WideStringC wsIdentifier; - std::unique_ptr pAccessors; + std::unique_ptr> pAccessors; std::unique_ptr pList; uint32_t line = m_pToken->m_uLinenum; NextToken(); @@ -1006,7 +1007,7 @@ CXFA_FMExpression* CXFA_FMParse::ParseForeachExpression() { ws_TempString.c_str()); NextToken(); } else { - pAccessors.reset(new CFX_PtrArray()); + pAccessors.reset(new CFX_ArrayTemplate()); while (m_pToken->m_type != TOKrparen) { CXFA_FMSimpleExpression* s = ParseSimpleExpression(); if (s) { -- cgit v1.2.3