| 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/fxfa/parser/xfa_script_resolveprocessor.h" | 7 #include "xfa/fxfa/parser/xfa_script_resolveprocessor.h" |
| 8 | 8 |
| 9 #include "core/fxcrt/include/fx_ext.h" | 9 #include "core/fxcrt/include/fx_ext.h" |
| 10 #include "xfa/fxfa/parser/xfa_doclayout.h" | 10 #include "xfa/fxfa/parser/xfa_doclayout.h" |
| (...skipping 694 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 705 | 705 |
| 706 CXFA_ScriptContext* pContext = rnd.m_pSC; | 706 CXFA_ScriptContext* pContext = rnd.m_pSC; |
| 707 wsExpression = wsCondition.Mid(2, wsCondition.GetLength() - 3); | 707 wsExpression = wsCondition.Mid(2, wsCondition.GetLength() - 3); |
| 708 for (int32_t i = iFoundCount - 1; i >= 0; i--) { | 708 for (int32_t i = iFoundCount - 1; i >= 0; i--) { |
| 709 CXFA_Object* node = findNodes[i]; | 709 CXFA_Object* node = findNodes[i]; |
| 710 FX_BOOL bRet = FALSE; | 710 FX_BOOL bRet = FALSE; |
| 711 std::unique_ptr<CFXJSE_Value> pRetValue( | 711 std::unique_ptr<CFXJSE_Value> pRetValue( |
| 712 new CFXJSE_Value(rnd.m_pSC->GetRuntime())); | 712 new CFXJSE_Value(rnd.m_pSC->GetRuntime())); |
| 713 bRet = pContext->RunScript(eLangType, wsExpression.AsStringC(), | 713 bRet = pContext->RunScript(eLangType, wsExpression.AsStringC(), |
| 714 pRetValue.get(), node); | 714 pRetValue.get(), node); |
| 715 if (!bRet || !FXJSE_Value_ToBoolean(pRetValue.get())) | 715 if (!bRet || !pRetValue->ToBoolean()) |
| 716 findNodes.RemoveAt(i); | 716 findNodes.RemoveAt(i); |
| 717 } | 717 } |
| 718 } | 718 } |
| 719 | 719 |
| 720 void CXFA_ResolveProcessor::XFA_ResolveNode_FilterCondition( | 720 void CXFA_ResolveProcessor::XFA_ResolveNode_FilterCondition( |
| 721 CXFA_ResolveNodesData& rnd, | 721 CXFA_ResolveNodesData& rnd, |
| 722 CFX_WideString wsCondition) { | 722 CFX_WideString wsCondition) { |
| 723 CXFA_NodeArray& findNodes = (CXFA_NodeArray&)rnd.m_Nodes; | 723 CXFA_NodeArray& findNodes = (CXFA_NodeArray&)rnd.m_Nodes; |
| 724 int32_t iCurrIndex = 0; | 724 int32_t iCurrIndex = 0; |
| 725 const CXFA_NodeArray& array = rnd.m_pSC->GetUpObjectArray(); | 725 const CXFA_NodeArray& array = rnd.m_pSC->GetUpObjectArray(); |
| (...skipping 89 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 815 if (m_pNodeHelper->XFA_CreateNode_ForCondition(wsNextCondition)) { | 815 if (m_pNodeHelper->XFA_CreateNode_ForCondition(wsNextCondition)) { |
| 816 if (m_pNodeHelper->m_eLastCreateType == XFA_ELEMENT_DataGroup) { | 816 if (m_pNodeHelper->m_eLastCreateType == XFA_ELEMENT_DataGroup) { |
| 817 iIndex = 0; | 817 iIndex = 0; |
| 818 } else { | 818 } else { |
| 819 iIndex = iCount - 1; | 819 iIndex = iCount - 1; |
| 820 } | 820 } |
| 821 } else { | 821 } else { |
| 822 iIndex = iCount - 1; | 822 iIndex = iCount - 1; |
| 823 } | 823 } |
| 824 } | 824 } |
| OLD | NEW |