diff options
Diffstat (limited to 'fxjse/runtime.h')
-rw-r--r-- | fxjse/runtime.h | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/fxjse/runtime.h b/fxjse/runtime.h index e3b4113a50..ff3be3a521 100644 --- a/fxjse/runtime.h +++ b/fxjse/runtime.h @@ -16,6 +16,8 @@ class CFXJSE_RuntimeList; class CFXJSE_RuntimeData { public: + ~CFXJSE_RuntimeData(); + static CFXJSE_RuntimeData* Get(v8::Isolate* pIsolate); v8::Isolate* m_pIsolate; @@ -23,22 +25,28 @@ class CFXJSE_RuntimeData { v8::Global<v8::Context> m_hRootContext; protected: + explicit CFXJSE_RuntimeData(v8::Isolate* pIsolate); + static CFXJSE_RuntimeData* Create(v8::Isolate* pIsolate); - CFXJSE_RuntimeData(v8::Isolate* pIsolate) : m_pIsolate(pIsolate) {} - CFXJSE_RuntimeData(); - CFXJSE_RuntimeData(const CFXJSE_RuntimeData&); - CFXJSE_RuntimeData& operator=(const CFXJSE_RuntimeData&); + + private: + CFXJSE_RuntimeData(const CFXJSE_RuntimeData&) = delete; + CFXJSE_RuntimeData& operator=(const CFXJSE_RuntimeData&) = delete; }; class CFXJSE_IsolateTracker { public: typedef void (*DisposeCallback)(v8::Isolate*, bool bOwnedIsolate); - static CFXJSE_IsolateTracker* g_pInstance; + + CFXJSE_IsolateTracker(); + ~CFXJSE_IsolateTracker(); void Append(v8::Isolate* pIsolate); void Remove(v8::Isolate* pIsolate, DisposeCallback lpfnDisposeCallback); void RemoveAll(DisposeCallback lpfnDisposeCallback); + static CFXJSE_IsolateTracker* g_pInstance; + protected: std::vector<v8::Isolate*> m_OwnedIsolates; }; |