Split up CFXJSE_ScopeUtil_IsolateHandleContext
Same with CFXJSE_ScopeUtil_IsolateHandleRootContext.
Subsequent CLs will seek to employ this logic to create a context
scope without introducing a new handle scope.
-- rename members to match style guide while at it.
Change-Id: Iddf9044c033da68c32609a8cede96b5dde64ecc6
Reviewed-on: https://pdfium-review.googlesource.com/c/pdfium/+/76750
Reviewed-by: Daniel Hosseinian <dhoss@chromium.org>
Commit-Queue: Tom Sepez <tsepez@chromium.org>
diff --git a/fxjs/xfa/cfxjse_isolatetracker.cpp b/fxjs/xfa/cfxjse_isolatetracker.cpp
index e9e92d4..11274a0 100644
--- a/fxjs/xfa/cfxjse_isolatetracker.cpp
+++ b/fxjs/xfa/cfxjse_isolatetracker.cpp
@@ -12,13 +12,18 @@
CFXJSE_ScopeUtil_IsolateHandle::CFXJSE_ScopeUtil_IsolateHandle(
v8::Isolate* pIsolate)
- : m_iscope(pIsolate), m_hscope(pIsolate) {}
+ : isolate_scope_(pIsolate), handle_scope_(pIsolate) {}
CFXJSE_ScopeUtil_IsolateHandle::~CFXJSE_ScopeUtil_IsolateHandle() = default;
+CFXJSE_ScopeUtil_Context::CFXJSE_ScopeUtil_Context(CFXJSE_Context* pContext)
+ : context_scope_(pContext->GetContext()) {}
+
+CFXJSE_ScopeUtil_Context::~CFXJSE_ScopeUtil_Context() = default;
+
CFXJSE_ScopeUtil_IsolateHandleContext::CFXJSE_ScopeUtil_IsolateHandleContext(
CFXJSE_Context* pContext)
- : m_parent(pContext->GetIsolate()), m_cscope(pContext->GetContext()) {}
+ : isolate_handle_(pContext->GetIsolate()), context_(pContext) {}
CFXJSE_ScopeUtil_IsolateHandleContext::CFXJSE_ScopeUtil_IsolateHandleContext(
CFXJSE_Engine* pEngine)
@@ -27,12 +32,17 @@
CFXJSE_ScopeUtil_IsolateHandleContext::
~CFXJSE_ScopeUtil_IsolateHandleContext() = default;
-CFXJSE_ScopeUtil_IsolateHandleRootContext::
- CFXJSE_ScopeUtil_IsolateHandleRootContext(v8::Isolate* pIsolate)
- : CFXJSE_ScopeUtil_IsolateHandle(pIsolate),
- m_cscope(v8::Local<v8::Context>::New(
+CFXJSE_ScopeUtil_RootContext::CFXJSE_ScopeUtil_RootContext(
+ v8::Isolate* pIsolate)
+ : context_scope_(v8::Local<v8::Context>::New(
pIsolate,
CFXJSE_RuntimeData::Get(pIsolate)->m_hRootContext)) {}
+CFXJSE_ScopeUtil_RootContext::~CFXJSE_ScopeUtil_RootContext() = default;
+
+CFXJSE_ScopeUtil_IsolateHandleRootContext::
+ CFXJSE_ScopeUtil_IsolateHandleRootContext(v8::Isolate* pIsolate)
+ : isolate_handle_(pIsolate), root_context_(pIsolate) {}
+
CFXJSE_ScopeUtil_IsolateHandleRootContext::
~CFXJSE_ScopeUtil_IsolateHandleRootContext() = default;
diff --git a/fxjs/xfa/cfxjse_isolatetracker.h b/fxjs/xfa/cfxjse_isolatetracker.h
index 32623b7..d3105c8 100644
--- a/fxjs/xfa/cfxjse_isolatetracker.h
+++ b/fxjs/xfa/cfxjse_isolatetracker.h
@@ -25,8 +25,22 @@
void* operator new(size_t size) = delete;
void operator delete(void*, size_t) = delete;
- v8::Isolate::Scope m_iscope;
- v8::HandleScope m_hscope;
+ v8::Isolate::Scope isolate_scope_;
+ v8::HandleScope handle_scope_;
+};
+
+class CFXJSE_ScopeUtil_Context {
+ public:
+ explicit CFXJSE_ScopeUtil_Context(CFXJSE_Context* pContext);
+ CFXJSE_ScopeUtil_Context(const CFXJSE_ScopeUtil_Context&) = delete;
+ CFXJSE_ScopeUtil_Context& operator=(const CFXJSE_ScopeUtil_Context&) = delete;
+ ~CFXJSE_ScopeUtil_Context();
+
+ private:
+ void* operator new(size_t size) = delete;
+ void operator delete(void*, size_t) = delete;
+
+ v8::Context::Scope context_scope_;
};
class CFXJSE_ScopeUtil_IsolateHandleContext {
@@ -43,12 +57,26 @@
void* operator new(size_t size) = delete;
void operator delete(void*, size_t) = delete;
- CFXJSE_ScopeUtil_IsolateHandle m_parent;
- v8::Context::Scope m_cscope;
+ CFXJSE_ScopeUtil_IsolateHandle isolate_handle_;
+ CFXJSE_ScopeUtil_Context context_;
};
-class CFXJSE_ScopeUtil_IsolateHandleRootContext final
- : public CFXJSE_ScopeUtil_IsolateHandle {
+class CFXJSE_ScopeUtil_RootContext {
+ public:
+ explicit CFXJSE_ScopeUtil_RootContext(v8::Isolate* pIsolate);
+ CFXJSE_ScopeUtil_RootContext(const CFXJSE_ScopeUtil_RootContext&) = delete;
+ CFXJSE_ScopeUtil_RootContext& operator=(const CFXJSE_ScopeUtil_RootContext&) =
+ delete;
+ ~CFXJSE_ScopeUtil_RootContext();
+
+ private:
+ void* operator new(size_t size) = delete;
+ void operator delete(void*, size_t) = delete;
+
+ v8::Context::Scope context_scope_;
+};
+
+class CFXJSE_ScopeUtil_IsolateHandleRootContext {
public:
explicit CFXJSE_ScopeUtil_IsolateHandleRootContext(v8::Isolate* pIsolate);
CFXJSE_ScopeUtil_IsolateHandleRootContext(
@@ -61,7 +89,8 @@
void* operator new(size_t size) = delete;
void operator delete(void*, size_t) = delete;
- v8::Context::Scope m_cscope;
+ CFXJSE_ScopeUtil_IsolateHandle isolate_handle_;
+ CFXJSE_ScopeUtil_RootContext root_context_;
};
#endif // FXJS_XFA_CFXJSE_ISOLATETRACKER_H_