Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(85)

Unified Diff: fpdfsdk/jsapi/fxjs_v8.cpp

Issue 2053043002: Untangle bad depdenency from fxjse/ to fpdfsdk/ (Closed) Base URL: https://pdfium.googlesource.com/pdfium.git@move_fxjse
Patch Set: Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « fpdfsdk/jsapi/DEPS ('k') | fpdfsdk/jsapi/include/fxjs_v8.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: fpdfsdk/jsapi/fxjs_v8.cpp
diff --git a/fpdfsdk/jsapi/fxjs_v8.cpp b/fpdfsdk/jsapi/fxjs_v8.cpp
index 790d10b60201793649de1ccd3579e1496c7aa4df..f740c443cd9658f8f7f971e1f94129daf4f62e12 100644
--- a/fpdfsdk/jsapi/fxjs_v8.cpp
+++ b/fpdfsdk/jsapi/fxjs_v8.cpp
@@ -24,7 +24,6 @@ const wchar_t kFXJSValueNameUndefined[] = L"undefined";
// embedders of PDFIum). The value we want to use is:
// kPerContextDataStartIndex + kEmbedderPDFium, which is 3.
static const unsigned int kPerContextDataIndex = 3u;
-static unsigned int g_embedderDataSlot = 1u;
static v8::Isolate* g_isolate = nullptr;
static size_t g_isolate_ref_count = 0;
static FXJS_ArrayBufferAllocator* g_arrayBufferAllocator = nullptr;
@@ -39,66 +38,6 @@ class CFXJS_PerObjectData {
void* m_pPrivate;
};
-class CFXJS_ObjDefinition {
- public:
- static int MaxID(v8::Isolate* pIsolate) {
- return FXJS_PerIsolateData::Get(pIsolate)->m_ObjectDefnArray.size();
- }
-
- static CFXJS_ObjDefinition* ForID(v8::Isolate* pIsolate, int id) {
- // Note: GetAt() halts if out-of-range even in release builds.
- return FXJS_PerIsolateData::Get(pIsolate)->m_ObjectDefnArray[id];
- }
-
- CFXJS_ObjDefinition(v8::Isolate* isolate,
- const wchar_t* sObjName,
- FXJSOBJTYPE eObjType,
- FXJS_CONSTRUCTOR pConstructor,
- FXJS_DESTRUCTOR pDestructor)
- : m_ObjName(sObjName),
- m_ObjType(eObjType),
- m_pConstructor(pConstructor),
- m_pDestructor(pDestructor),
- m_pIsolate(isolate) {
- v8::Isolate::Scope isolate_scope(isolate);
- v8::HandleScope handle_scope(isolate);
-
- v8::Local<v8::FunctionTemplate> fun = v8::FunctionTemplate::New(isolate);
- fun->InstanceTemplate()->SetInternalFieldCount(2);
- m_FunctionTemplate.Reset(isolate, fun);
-
- v8::Local<v8::Signature> sig = v8::Signature::New(isolate, fun);
- m_Signature.Reset(isolate, sig);
- }
-
- int AssignID() {
- FXJS_PerIsolateData* pData = FXJS_PerIsolateData::Get(m_pIsolate);
- pData->m_ObjectDefnArray.push_back(this);
- return pData->m_ObjectDefnArray.size() - 1;
- }
-
- v8::Local<v8::ObjectTemplate> GetInstanceTemplate() {
- v8::EscapableHandleScope scope(m_pIsolate);
- v8::Local<v8::FunctionTemplate> function =
- m_FunctionTemplate.Get(m_pIsolate);
- return scope.Escape(function->InstanceTemplate());
- }
-
- v8::Local<v8::Signature> GetSignature() {
- v8::EscapableHandleScope scope(m_pIsolate);
- return scope.Escape(m_Signature.Get(m_pIsolate));
- }
-
- const wchar_t* const m_ObjName;
- const FXJSOBJTYPE m_ObjType;
- const FXJS_CONSTRUCTOR m_pConstructor;
- const FXJS_DESTRUCTOR m_pDestructor;
-
- v8::Isolate* m_pIsolate;
- v8::Global<v8::FunctionTemplate> m_FunctionTemplate;
- v8::Global<v8::Signature> m_Signature;
-};
-
static v8::Local<v8::ObjectTemplate> GetGlobalObjectTemplate(
v8::Isolate* pIsolate) {
int maxID = CFXJS_ObjDefinition::MaxID(pIsolate);
@@ -154,11 +93,11 @@ V8TemplateMapTraits::MapType* V8TemplateMapTraits::MapFromWeakCallbackInfo(
void FXJS_Initialize(unsigned int embedderDataSlot, v8::Isolate* pIsolate) {
if (g_isolate) {
- ASSERT(g_embedderDataSlot == embedderDataSlot);
+ ASSERT(FXJS_PerIsolateData::EmbedderDataSlot() == embedderDataSlot);
ASSERT(g_isolate == pIsolate);
return;
}
- g_embedderDataSlot = embedderDataSlot;
+ FXJS_PerIsolateData::SetEmbedderDataSlot(embedderDataSlot);
g_isolate = pIsolate;
}
@@ -190,18 +129,6 @@ size_t FXJS_GlobalIsolateRefCount() {
return g_isolate_ref_count;
}
-// static
-void FXJS_PerIsolateData::SetUp(v8::Isolate* pIsolate) {
- if (!pIsolate->GetData(g_embedderDataSlot))
- pIsolate->SetData(g_embedderDataSlot, new FXJS_PerIsolateData());
-}
-
-// static
-FXJS_PerIsolateData* FXJS_PerIsolateData::Get(v8::Isolate* pIsolate) {
- return static_cast<FXJS_PerIsolateData*>(
- pIsolate->GetData(g_embedderDataSlot));
-}
-
int FXJS_DefineObj(v8::Isolate* pIsolate,
const wchar_t* sObjName,
FXJSOBJTYPE eObjType,
@@ -396,7 +323,7 @@ void FXJS_ReleaseRuntime(v8::Isolate* pIsolate,
for (int i = 0; i < maxID; ++i)
delete CFXJS_ObjDefinition::ForID(pIsolate, i);
- pIsolate->SetData(g_embedderDataSlot, nullptr);
+ pIsolate->SetData(FXJS_PerIsolateData::EmbedderDataSlot(), nullptr);
delete pData;
}
« no previous file with comments | « fpdfsdk/jsapi/DEPS ('k') | fpdfsdk/jsapi/include/fxjs_v8.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698