diff options
author | tsepez <tsepez@chromium.org> | 2016-05-17 16:24:34 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-05-17 16:24:34 -0700 |
commit | 56286b311543331d02fee90b832d66389a307961 (patch) | |
tree | 250cc5a2eed0a796115316511a9917e2af3814e5 /xfa/fxjse/context.h | |
parent | 0c268e941972fd808d06033b68e22ec2c6648188 (diff) | |
download | pdfium-56286b311543331d02fee90b832d66389a307961.tar.xz |
Remove some CFX_ArrayTemplate<> usage from fxjse
Allows use of otherwise incompatible unique_ptrs.
Review-Url: https://codereview.chromium.org/1992513002
Diffstat (limited to 'xfa/fxjse/context.h')
-rw-r--r-- | xfa/fxjse/context.h | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/xfa/fxjse/context.h b/xfa/fxjse/context.h index 75973f2a66..0092aac7f3 100644 --- a/xfa/fxjse/context.h +++ b/xfa/fxjse/context.h @@ -7,6 +7,9 @@ #ifndef XFA_FXJSE_CONTEXT_H_ #define XFA_FXJSE_CONTEXT_H_ +#include <memory> +#include <vector> + #include "core/fxcrt/include/fx_basic.h" #include "v8/include/v8.h" #include "xfa/fxjse/include/fxjse.h" @@ -15,33 +18,33 @@ class CFXJSE_Class; class CFXJSE_Value; class CFXJSE_Context { - protected: - CFXJSE_Context(v8::Isolate* pIsolate) : m_pIsolate(pIsolate) {} - public: static CFXJSE_Context* Create(v8::Isolate* pIsolate, - const FXJSE_CLASS* lpGlobalClass = NULL, - void* lpGlobalObject = NULL); + const FXJSE_CLASS* lpGlobalClass = nullptr, + void* lpGlobalObject = nullptr); ~CFXJSE_Context(); + V8_INLINE v8::Isolate* GetRuntime(void) { return m_pIsolate; } void GetGlobalObject(CFXJSE_Value* pValue); FX_BOOL ExecuteScript(const FX_CHAR* szScript, CFXJSE_Value* lpRetValue, - CFXJSE_Value* lpNewThisObject = NULL); + CFXJSE_Value* lpNewThisObject = nullptr); protected: CFXJSE_Context(); CFXJSE_Context(const CFXJSE_Context&); + explicit CFXJSE_Context(v8::Isolate* pIsolate); CFXJSE_Context& operator=(const CFXJSE_Context&); - protected: v8::Global<v8::Context> m_hContext; v8::Isolate* m_pIsolate; - CFX_ArrayTemplate<CFXJSE_Class*> m_rgClasses; + std::vector<std::unique_ptr<CFXJSE_Class>> m_rgClasses; + friend class CFXJSE_Class; friend class CFXJSE_ScopeUtil_IsolateHandleContext; friend class CFXJSE_ScopeUtil_IsolateHandleRootOrNormalContext; }; + v8::Local<v8::Object> FXJSE_CreateReturnValue(v8::Isolate* pIsolate, v8::TryCatch& trycatch); |