![]() |
v8 13.6.233 (node 24.1.0)
V8 is Google's open source JavaScript engine
|
#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) |
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.
using DeleterCallback |
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.
~BackingStore | ( | ) |
size_t ByteLength | ( | ) | const |
The length (in bytes) of this backing store.
void * Data | ( | ) | const |
Return a pointer to the beginning of the memory block for this backing store. The pointer is only valid as long as this backing store object lives.
|
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.
bool 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 IsShared | ( | ) | const |
Indicates whether the backing store was created for an ArrayBuffer or a SharedArrayBuffer.
size_t 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.