summaryrefslogtreecommitdiff
path: root/fpdfsdk/src/javascript/JS_Object.cpp
diff options
context:
space:
mode:
authorBruce Dawson <brucedawson@google.com>2015-01-05 13:26:17 -0800
committerBruce Dawson <brucedawson@google.com>2015-01-05 13:26:17 -0800
commitb4649dc9c0f8f64c335d4ed61a82976f25e19a70 (patch)
treebc994c8c801029077f3dc1d5cc7975686ff29c26 /fpdfsdk/src/javascript/JS_Object.cpp
parent5d9acf8ee5dbbaad838f14f1fa173d892c4300ab (diff)
downloadpdfium-b4649dc9c0f8f64c335d4ed61a82976f25e19a70.tar.xz
XFA: merge patch from CL 831903002, m_sTimeMap fixes
Get rid of fifteen copies of m_sTimeMap and their initializers. m_sTimeMap is a global variable with a constructor and destructor, which is not allowed. This change moves it to a function with a static pointer so that it is constructed on demand and then leaked, thus avoiding having startup and shutdown code. This also fixes a worrisome bug caused by having m_sTimeMap defined in a header file. Because m_sTimeMap was defined (and marked as static) in a header file there were fifteen separate copies of it, one for each source file which included the header file. This could easily lead to bugs because a timer that was added from one source file would be invisible to other source files. Each instance of m_sTimeMap added four entries to the dump-static-initializers.py report, for a total of sixty, so this fix significantly cleans up that report. BUG=441899 TBR=tsepez@chromium.org Review URL: https://codereview.chromium.org/831903002 Review URL: https://codereview.chromium.org/800883004
Diffstat (limited to 'fpdfsdk/src/javascript/JS_Object.cpp')
-rw-r--r--fpdfsdk/src/javascript/JS_Object.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/fpdfsdk/src/javascript/JS_Object.cpp b/fpdfsdk/src/javascript/JS_Object.cpp
index 09150e796b..34ad8e1f0a 100644
--- a/fpdfsdk/src/javascript/JS_Object.cpp
+++ b/fpdfsdk/src/javascript/JS_Object.cpp
@@ -12,6 +12,13 @@
// #include "../../include/javascript/JS_ResMgr.h"
#include "../../include/javascript/JS_Context.h"
+JS_TIMER_MAPARRAY& GetTimeMap()
+{
+ // Leak the timer array at shutdown.
+ static auto* timeMap = new JS_TIMER_MAPARRAY;
+ return *timeMap;
+}
+
int FXJS_MsgBox(CPDFDoc_Environment* pApp, CPDFSDK_PageView* pPageView, FX_LPCWSTR swMsg, FX_LPCWSTR swTitle, FX_UINT nType, FX_UINT nIcon)
{
int nRet = 0;