void CXFA_FFDocView::RunCalculateRecursive(int32_t& iIndex) { while (iIndex < m_CalculateAccs.GetSize()) { CXFA_WidgetAcc* pCurAcc = (CXFA_WidgetAcc*)m_CalculateAccs[iIndex]; AddCalculateNodeNotify(pCurAcc->GetNode()); int32_t iRefCount = (int32_t)(uintptr_t)pCurAcc->GetNode()->GetUserData(XFA_CalcRefCount); iRefCount++; pCurAcc->GetNode()->SetUserData(XFA_CalcRefCount, (void*)(uintptr_t)iRefCount); if (iRefCount > 11) { break; } if ((pCurAcc->ProcessCalculate()) == XFA_EVENTERROR_Sucess) { AddValidateWidget(pCurAcc); } iIndex++; RunCalculateRecursive(iIndex); } }