v8
6.2.414 (node 8.16.2)
V8 is Google's open source JavaScript engine
|
#include <v8.h>
Public Types | |
enum class | AllocationMode { kNormal , kReservation } |
enum class | Protection { kNoAccess , kReadWrite } |
Public Member Functions | |
virtual | ~Allocator () |
virtual void * | Allocate (size_t length)=0 |
virtual void * | AllocateUninitialized (size_t length)=0 |
virtual void * | Reserve (size_t length) |
virtual void | Free (void *data, size_t length)=0 |
virtual void | Free (void *data, size_t length, AllocationMode mode) |
virtual void | SetProtection (void *data, size_t length, Protection protection) |
Static Public Member Functions | |
static Allocator * | NewDefaultAllocator () |
A thread-safe allocator that V8 uses to allocate |ArrayBuffer|'s memory. The allocator is a global V8 setting. It has to be set via Isolate::CreateParams.
Memory allocated through this allocator by V8 is accounted for as external memory by V8. Note that V8 keeps track of the memory for all internalized |ArrayBuffer|s. Responsibility for tracking external memory (using Isolate::AdjustAmountOfExternalAllocatedMemory) is handed over to the embedder upon externalization and taken over upon internalization (creating an internalized buffer from an existing buffer).
Note that it is unsafe to call back into V8 from any of the allocator functions.
|
strong |
|
strong |
|
pure virtual |
Allocate |length| bytes. Return NULL if allocation is not successful. Memory should be initialized to zeroes.
|
pure virtual |
Allocate |length| bytes. Return NULL if allocation is not successful. Memory does not have to be initialized.
|
pure virtual |
Free the memory block of size |length|, pointed to by |data|. That memory is guaranteed to be previously allocated by |Allocate|.
|
virtual |
Free the memory block of size |length|, pointed to by |data|. That memory is guaranteed to be previously allocated by |Allocate| or |Reserve|, depending on |mode|.
|
static |
malloc/free based convenience allocator.
Caller takes ownership, i.e. the returned object needs to be freed using |delete allocator| once it is no longer in use.
|
virtual |
Reserved |length| bytes, but do not commit the memory. Must call |SetProtection| to make memory accessible.
|
virtual |
Change the protection on a region of memory.
On platforms that make a distinction between reserving and committing memory, changing the protection to kReadWrite must also ensure the memory is committed.