| Index: xfa/src/fxjse/src/runtime.cpp
|
| diff --git a/xfa/src/fxjse/src/runtime.cpp b/xfa/src/fxjse/src/runtime.cpp
|
| index c4dc61c2493bebf317a71fabf7b2c06a0dbb6bee..d88060655121faf7caacaf747ce18761b085ecb3 100644
|
| --- a/xfa/src/fxjse/src/runtime.cpp
|
| +++ b/xfa/src/fxjse/src/runtime.cpp
|
| @@ -8,6 +8,21 @@
|
| #include "fxv8.h"
|
| #include "runtime.h"
|
| #include "scope_inline.h"
|
| +
|
| +// Duplicates fpdfsdk's JS_Runtime.h, but keeps XFA from depending on it.
|
| +// TODO(tsepez): make a single version of this.
|
| +class FXJSE_ArrayBufferAllocator : public v8::ArrayBuffer::Allocator {
|
| + void* Allocate(size_t length) override {
|
| + return calloc(1, length);
|
| + }
|
| + void* AllocateUninitialized(size_t length) override {
|
| + return malloc(length);
|
| + }
|
| + void Free(void* data, size_t length) override {
|
| + free(data);
|
| + }
|
| +};
|
| +
|
| static void FXJSE_KillV8()
|
| {
|
| v8::V8::Dispose();
|
| @@ -51,7 +66,9 @@ void FXJSE_Finalize()
|
| }
|
| FXJSE_HRUNTIME FXJSE_Runtime_Create()
|
| {
|
| - v8::Isolate* pIsolate = v8::Isolate::New();
|
| + v8::Isolate::CreateParams params;
|
| + params.array_buffer_allocator = new FXJSE_ArrayBufferAllocator();
|
| + v8::Isolate* pIsolate = v8::Isolate::New(params);
|
| ASSERT(pIsolate && CFXJSE_RuntimeData::g_RuntimeList);
|
| CFXJSE_RuntimeData::g_RuntimeList->AppendRuntime(pIsolate);
|
| return reinterpret_cast<FXJSE_HRUNTIME>(pIsolate);
|
|
|