Get rid of fifteen copies of m_sTimeMap and their initializers.
authorBruce Dawson <brucedawson@google.com>
Mon, 5 Jan 2015 21:21:46 +0000 (13:21 -0800)
committerBruce Dawson <brucedawson@google.com>
Mon, 5 Jan 2015 21:21:46 +0000 (13:21 -0800)
commita975cfae4719986e5ea0ff06a45b91e1cdd042b3
treec25e1342e8fd465c7cc00d707e7c118a8fb4e447
parent263842843f4b817b9713eb3a081e297e1708f582
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
R=tsepez@chromium.org

Review URL: https://codereview.chromium.org/831903002
fpdfsdk/include/javascript/JS_Object.h
fpdfsdk/src/javascript/JS_Object.cpp