| Index: fpdfsdk/src/javascript/JS_Runtime.cpp
|
| diff --git a/fpdfsdk/src/javascript/JS_Runtime.cpp b/fpdfsdk/src/javascript/JS_Runtime.cpp
|
| index afc6db6ae58ba5cd963ebe46a0072d736da90432..a85067be1bc93434a1d8d632c3010acbc4617b81 100644
|
| --- a/fpdfsdk/src/javascript/JS_Runtime.cpp
|
| +++ b/fpdfsdk/src/javascript/JS_Runtime.cpp
|
| @@ -32,24 +32,14 @@
|
| CJS_RuntimeFactory::~CJS_RuntimeFactory() {}
|
|
|
| IFXJS_Runtime* CJS_RuntimeFactory::NewJSRuntime(CPDFDoc_Environment* pApp) {
|
| - if (!m_bInit) {
|
| - unsigned int embedderDataSlot = 0;
|
| - if (pApp->GetFormFillInfo()->m_pJsPlatform->version >= 2) {
|
| - embedderDataSlot =
|
| - pApp->GetFormFillInfo()->m_pJsPlatform->m_v8EmbedderSlot;
|
| - }
|
| - JS_Initial(embedderDataSlot);
|
| - m_bInit = TRUE;
|
| - }
|
| + m_bInit = true;
|
| return new CJS_Runtime(pApp);
|
| }
|
| void CJS_RuntimeFactory::AddRef() {
|
| - // to do.Should be implemented as atom manipulation.
|
| m_nRef++;
|
| }
|
| void CJS_RuntimeFactory::Release() {
|
| if (m_bInit) {
|
| - // to do.Should be implemented as atom manipulation.
|
| if (--m_nRef == 0) {
|
| JS_Release();
|
| m_bInit = FALSE;
|
| @@ -61,18 +51,6 @@ void CJS_RuntimeFactory::DeleteJSRuntime(IFXJS_Runtime* pRuntime) {
|
| delete (CJS_Runtime*)pRuntime;
|
| }
|
|
|
| -void* CJS_ArrayBufferAllocator::Allocate(size_t length) {
|
| - return calloc(1, length);
|
| -}
|
| -
|
| -void* CJS_ArrayBufferAllocator::AllocateUninitialized(size_t length) {
|
| - return malloc(length);
|
| -}
|
| -
|
| -void CJS_ArrayBufferAllocator::Free(void* data, size_t length) {
|
| - free(data);
|
| -}
|
| -
|
| /* ------------------------------ CJS_Runtime ------------------------------ */
|
| v8::Global<v8::ObjectTemplate>& _getGlobalObjectTemplate(v8::Isolate* pIsolate);
|
|
|
| @@ -91,7 +69,7 @@ CJS_Runtime::CJS_Runtime(CPDFDoc_Environment* pApp)
|
| m_pApp->GetFormFillInfo()->m_pJsPlatform->m_isolate);
|
| }
|
| if (!m_isolate) {
|
| - m_pArrayBufferAllocator.reset(new CJS_ArrayBufferAllocator());
|
| + m_pArrayBufferAllocator.reset(new JS_ArrayBufferAllocator());
|
|
|
| v8::Isolate::CreateParams params;
|
| params.array_buffer_allocator = m_pArrayBufferAllocator.get();
|
| @@ -105,15 +83,19 @@ CJS_Runtime::CJS_Runtime(CPDFDoc_Environment* pApp)
|
| v8::HandleScope handle_scope(isolate);
|
| if (CPDFXFA_App::GetInstance()->InitRuntime(FALSE)) {
|
| CJS_Context* pContext = (CJS_Context*)NewContext();
|
| - JS_InitialRuntime(GetIsolate(), this, pContext, m_context);
|
| + JS_InitializeRuntime(GetIsolate(), this, pContext, m_context);
|
| ReleaseContext(pContext);
|
| return;
|
| }
|
|
|
| + unsigned int embedderDataSlot = 0;
|
| + if (m_pApp->GetFormFillInfo()->m_pJsPlatform->version >= 2)
|
| + embedderDataSlot = pApp->GetFormFillInfo()->m_pJsPlatform->m_v8EmbedderSlot;
|
| + JS_Initialize(embedderDataSlot);
|
| DefineJSObjects();
|
|
|
| CJS_Context* pContext = (CJS_Context*)NewContext();
|
| - JS_InitialRuntime(GetIsolate(), this, pContext, m_context);
|
| + JS_InitializeRuntime(GetIsolate(), this, pContext, m_context);
|
| ReleaseContext(pContext);
|
| }
|
|
|
|
|