diff options
Diffstat (limited to 'fpdfsdk/jsapi/include')
-rw-r--r-- | fpdfsdk/jsapi/include/fxjs_v8.h | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/fpdfsdk/jsapi/include/fxjs_v8.h b/fpdfsdk/jsapi/include/fxjs_v8.h index 60389d2e1a..3ae1d5e0ca 100644 --- a/fpdfsdk/jsapi/include/fxjs_v8.h +++ b/fpdfsdk/jsapi/include/fxjs_v8.h @@ -81,11 +81,11 @@ class V8TemplateMap { public: typedef v8::GlobalValueMap<void*, v8::Object, V8TemplateMapTraits> MapType; - void set(void* key, v8::Local<v8::Object> handle) { - ASSERT(!m_map.Contains(key)); - m_map.Set(key, handle); - } - explicit V8TemplateMap(v8::Isolate* isolate) : m_map(isolate) {} + explicit V8TemplateMap(v8::Isolate* isolate); + ~V8TemplateMap(); + + void set(void* key, v8::Local<v8::Object> handle); + friend class V8TemplateMapTraits; private: @@ -94,8 +94,11 @@ class V8TemplateMap { class FXJS_PerIsolateData { public: + ~FXJS_PerIsolateData(); + static void SetUp(v8::Isolate* pIsolate); static FXJS_PerIsolateData* Get(v8::Isolate* pIsolate); + void CreateDynamicObjsMap(v8::Isolate* pIsolate) { if (!m_pDynamicObjsMap) m_pDynamicObjsMap = new V8TemplateMap(pIsolate); @@ -112,12 +115,7 @@ class FXJS_PerIsolateData { V8TemplateMap* m_pDynamicObjsMap; protected: -#ifndef PDF_ENABLE_XFA - FXJS_PerIsolateData() : m_pDynamicObjsMap(nullptr) {} -#else // PDF_ENABLE_XFA - FXJS_PerIsolateData() - : m_pFXJSERuntimeData(nullptr), m_pDynamicObjsMap(nullptr) {} -#endif // PDF_ENABLE_XFA + FXJS_PerIsolateData(); }; extern const wchar_t kFXJSValueNameString[]; |