diff options
author | Tom Sepez <tsepez@chromium.org> | 2018-02-09 18:26:09 +0000 |
---|---|---|
committer | Chromium commit bot <commit-bot@chromium.org> | 2018-02-09 18:26:09 +0000 |
commit | 3f8ee5e6b4e42fc77b4716b23ccd00840e24e250 (patch) | |
tree | 16406801eae8da64bbe44a1b014a3b3945c22bd6 /fxjs/cfx_v8.cpp | |
parent | 026717cb667cf0c7215cf55daf794d69752fc900 (diff) | |
download | pdfium-3f8ee5e6b4e42fc77b4716b23ccd00840e24e250.tar.xz |
Move CFX_V8 testing from embeddertest to unittest.
Test the lowest layer without firing up the whole library. Requires
firing up v8 in the unit test main, though.
Move array buffer allocator to cfx_v8 to allow building isolates.
Change-Id: I9a56d503a48e0e555d3310f2997fa12137695860
Reviewed-on: https://pdfium-review.googlesource.com/26130
Commit-Queue: Tom Sepez <tsepez@chromium.org>
Reviewed-by: dsinclair <dsinclair@chromium.org>
Diffstat (limited to 'fxjs/cfx_v8.cpp')
-rw-r--r-- | fxjs/cfx_v8.cpp | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/fxjs/cfx_v8.cpp b/fxjs/cfx_v8.cpp index 80b9eda47c..4738030236 100644 --- a/fxjs/cfx_v8.cpp +++ b/fxjs/cfx_v8.cpp @@ -6,6 +6,9 @@ #include "fxjs/cfx_v8.h" +#include "core/fxcrt/fx_memory.h" +#include "third_party/base/allocator/partition_allocator/partition_alloc.h" + CFX_V8::CFX_V8(v8::Isolate* isolate) : m_isolate(isolate) {} CFX_V8::~CFX_V8() = default; @@ -194,3 +197,24 @@ v8::Local<v8::Array> CFX_V8::ToArray(v8::Local<v8::Value> pValue) { v8::Local<v8::Context> context = m_isolate->GetCurrentContext(); return v8::Local<v8::Array>::Cast(pValue->ToObject(context).ToLocalChecked()); } + +void* CFX_V8ArrayBufferAllocator::Allocate(size_t length) { + if (length > kMaxAllowedBytes) + return nullptr; + void* p = AllocateUninitialized(length); + if (p) + memset(p, 0, length); + return p; +} + +void* CFX_V8ArrayBufferAllocator::AllocateUninitialized(size_t length) { + if (length > kMaxAllowedBytes) + return nullptr; + return pdfium::base::PartitionAllocGeneric( + gArrayBufferPartitionAllocator.root(), length, "CFX_V8ArrayBuffer"); +} + +void CFX_V8ArrayBufferAllocator::Free(void* data, size_t length) { + pdfium::base::PartitionFreeGeneric(gArrayBufferPartitionAllocator.root(), + data); +} |