From e74ae8c02f6b5efa37ba11bcad6b714046cfc7b0 Mon Sep 17 00:00:00 2001 From: Dan Sinclair Date: Mon, 20 Nov 2017 20:28:23 +0000 Subject: Convert calc data and layout item to store in CJX_Node This CL moves the XFA_CalcData and XFA_LayoutItem out of the map'd data for a CJX_Node and stores directly on the node. This makes the object a bit bigger but makes the code a lot more understandable. Change-Id: I8897a52d61d37595181960c23928984aa5d67efc Reviewed-on: https://pdfium-review.googlesource.com/18590 Commit-Queue: dsinclair Reviewed-by: Tom Sepez --- xfa/fxfa/cxfa_widgetacc.cpp | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) (limited to 'xfa/fxfa/cxfa_widgetacc.cpp') diff --git a/xfa/fxfa/cxfa_widgetacc.cpp b/xfa/fxfa/cxfa_widgetacc.cpp index b019bf636c..6f852f3321 100644 --- a/xfa/fxfa/cxfa_widgetacc.cpp +++ b/xfa/fxfa/cxfa_widgetacc.cpp @@ -36,14 +36,6 @@ class CXFA_WidgetLayoutData { namespace { -void FFDeleteCalcData(void* pData) { - if (pData) - delete ((CXFA_CalcData*)pData); -} - -static XFA_MAPDATABLOCKCALLBACKINFO gs_XFADeleteCalcData = {FFDeleteCalcData, - nullptr}; - class CXFA_TextLayoutData : public CXFA_WidgetLayoutData { public: CXFA_TextLayoutData() {} @@ -644,12 +636,10 @@ std::pair CXFA_WidgetAcc::ExecuteBoolScript( if (static_cast(pRefNode->GetWidgetData()) == this) continue; - auto* pGlobalData = static_cast( - pRefNode->JSNode()->GetUserData(XFA_CalcData, false)); + CXFA_CalcData* pGlobalData = pRefNode->JSNode()->GetCalcData(); if (!pGlobalData) { - pGlobalData = new CXFA_CalcData; - pRefNode->JSNode()->SetUserData(XFA_CalcData, pGlobalData, - &gs_XFADeleteCalcData); + pRefNode->JSNode()->SetCalcData(pdfium::MakeUnique()); + pGlobalData = pRefNode->JSNode()->GetCalcData(); } if (!pdfium::ContainsValue(pGlobalData->m_Globals, this)) pGlobalData->m_Globals.push_back(this); -- cgit v1.2.3