diff options
author | tsepez <tsepez@chromium.org> | 2016-08-19 14:57:42 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-08-19 14:57:42 -0700 |
commit | a752edfd2ddc4913aeffd31b67f6fdb53e4116ae (patch) | |
tree | c36366014755593210f8dc806c24774b9066f8c3 /fpdfsdk | |
parent | ad589d7b83768f3b78ae6b9c90aa418611cc12c2 (diff) | |
download | pdfium-a752edfd2ddc4913aeffd31b67f6fdb53e4116ae.tar.xz |
Introduce pdfium::FakeUniquePtr for keys to sets of unique ptrs.
Review-Url: https://codereview.chromium.org/2262473002
Diffstat (limited to 'fpdfsdk')
-rw-r--r-- | fpdfsdk/javascript/app.cpp | 17 | ||||
-rw-r--r-- | fpdfsdk/javascript/app.h | 4 |
2 files changed, 10 insertions, 11 deletions
diff --git a/fpdfsdk/javascript/app.cpp b/fpdfsdk/javascript/app.cpp index 573de4030a..f95ec0b09b 100644 --- a/fpdfsdk/javascript/app.cpp +++ b/fpdfsdk/javascript/app.cpp @@ -19,6 +19,7 @@ #include "fpdfsdk/javascript/cjs_context.h" #include "fpdfsdk/javascript/cjs_runtime.h" #include "fpdfsdk/javascript/resource.h" +#include "third_party/base/stl_util.h" class GlobalTimer : public CJS_Runtime::Observer { public: @@ -510,10 +511,9 @@ FX_BOOL app::setInterval(IJS_Context* cc, uint32_t dwInterval = params.size() > 1 ? params[1].ToInt(pRuntime) : 1000; CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); - std::unique_ptr<GlobalTimer> timer( - new GlobalTimer(this, pApp, pRuntime, 0, script, dwInterval, 0)); - GlobalTimer* timerRef = timer.get(); - m_Timers[timerRef] = std::move(timer); + GlobalTimer* timerRef = + new GlobalTimer(this, pApp, pRuntime, 0, script, dwInterval, 0); + m_Timers.insert(std::unique_ptr<GlobalTimer>(timerRef)); v8::Local<v8::Object> pRetObj = pRuntime->NewFxDynamicObj(CJS_TimerObj::g_nObjDefnID); @@ -547,10 +547,9 @@ FX_BOOL app::setTimeOut(IJS_Context* cc, uint32_t dwTimeOut = params.size() > 1 ? params[1].ToInt(pRuntime) : 1000; CPDFDoc_Environment* pApp = pRuntime->GetReaderApp(); - std::unique_ptr<GlobalTimer> timer( - new GlobalTimer(this, pApp, pRuntime, 1, script, dwTimeOut, dwTimeOut)); - GlobalTimer* timerRef = timer.get(); - m_Timers[timerRef] = std::move(timer); + GlobalTimer* timerRef = + new GlobalTimer(this, pApp, pRuntime, 1, script, dwTimeOut, dwTimeOut); + m_Timers.insert(std::unique_ptr<GlobalTimer>(timerRef)); v8::Local<v8::Object> pRetObj = pRuntime->NewFxDynamicObj(CJS_TimerObj::g_nObjDefnID); @@ -626,7 +625,7 @@ void app::TimerProc(GlobalTimer* pTimer) { } void app::CancelProc(GlobalTimer* pTimer) { - m_Timers.erase(pTimer); + m_Timers.erase(pdfium::FakeUniquePtr<GlobalTimer>(pTimer)); } void app::RunJsScript(CJS_Runtime* pRuntime, const CFX_WideString& wsScript) { diff --git a/fpdfsdk/javascript/app.h b/fpdfsdk/javascript/app.h index 911d86586a..1efd34168c 100644 --- a/fpdfsdk/javascript/app.h +++ b/fpdfsdk/javascript/app.h @@ -7,8 +7,8 @@ #ifndef FPDFSDK_JAVASCRIPT_APP_H_ #define FPDFSDK_JAVASCRIPT_APP_H_ -#include <map> #include <memory> +#include <unordered_set> #include <vector> #include "fpdfsdk/javascript/JS_Define.h" @@ -166,7 +166,7 @@ class app : public CJS_EmbedObj { bool m_bCalculate; bool m_bRuntimeHighLight; - std::map<GlobalTimer*, std::unique_ptr<GlobalTimer>> m_Timers; + std::unordered_set<std::unique_ptr<GlobalTimer>> m_Timers; }; class CJS_App : public CJS_Object { |