![]() |
v8
V8 is Google’s open source high-performance JavaScript and WebAssembly engine, written in C++.
|
#include <v8-array-buffer.h>
Public Types | |
using | DeleterCallback |
Public Member Functions | |
~BackingStore () | |
void * | Data () const |
size_t | ByteLength () const |
size_t | MaxByteLength () const |
bool | IsShared () const |
bool | IsResizableByUserJavaScript () const |
void | operator delete (void *ptr) |
Static Public Member Functions | |
static void | EmptyDeleter (void *data, size_t length, void *deleter_data) |
Private Member Functions | |
BackingStore () | |
A wrapper around the backing store (i.e. the raw memory) of an array buffer. See a document linked in http://crbug.com/v8/9908 for more information.
The allocation and destruction of backing stores is generally managed by V8. Clients should always use standard C++ memory ownership types (i.e. std::unique_ptr and std::shared_ptr) to manage lifetimes of backing stores properly, since V8 internal objects may alias backing stores.
This object does not keep the underlying |ArrayBuffer::Allocator| alive by default. Use Isolate::CreateParams::array_buffer_allocator_shared when creating the Isolate to make it hold a reference to the allocator itself.
Definition at line 49 of file v8-array-buffer.h.
This callback is used only if the memory block for a BackingStore cannot be allocated with an ArrayBuffer::Allocator. In such cases the destructor of the BackingStore invokes the callback to free the memory block.
Definition at line 99 of file v8-array-buffer.h.
v8::BackingStore::~BackingStore | ( | ) |
|
private |
See [Shared]ArrayBuffer::GetBackingStore and [Shared]ArrayBuffer::NewBackingStore.
size_t v8::BackingStore::ByteLength | ( | ) | const |
void * v8::BackingStore::Data | ( | ) | const |
|
static |
If the memory block of a BackingStore is static or is managed manually, then this empty deleter along with nullptr deleter_data can be passed to ArrayBuffer::NewBackingStore to indicate that.
The manually managed case should be used with caution and only when it is guaranteed that the memory block freeing happens after detaching its ArrayBuffer.
Definition at line 4023 of file api.cc.
bool v8::BackingStore::IsResizableByUserJavaScript | ( | ) | const |
Indicates whether the backing store was created for a resizable ArrayBuffer or a growable SharedArrayBuffer, and thus may be resized by user JavaScript code.
bool v8::BackingStore::IsShared | ( | ) | const |
Indicates whether the backing store was created for an ArrayBuffer or a SharedArrayBuffer.
size_t v8::BackingStore::MaxByteLength | ( | ) | const |
The maximum length (in bytes) that this backing store may grow to.
If this backing store was created for a resizable ArrayBuffer or a growable SharedArrayBuffer, it is >= ByteLength(). Otherwise it is == ByteLength().
|
inline |
Prevent implicit instantiation of operator delete with size_t argument. The size_t argument would be incorrect because ptr points to the internal BackingStore object.
Definition at line 92 of file v8-array-buffer.h.