0
0
Fork 0
mirror of https://github.com/denoland/rusty_v8.git synced 2025-01-22 15:11:04 -05:00

Add v8::Isolate:AdjustAmountOfExternalAllocatedMemory bindings (#880)

This commit is contained in:
Divy Srivastava 2022-01-23 22:49:29 +05:30 committed by GitHub
parent e7e8ada2be
commit 4b5514711a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 25 additions and 0 deletions

View file

@ -281,6 +281,11 @@ void v8__Isolate__RemoveNearHeapLimitCallback(
isolate->RemoveNearHeapLimitCallback(callback, heap_limit);
}
int64_t v8__Isolate__AdjustAmountOfExternalAllocatedMemory(
v8::Isolate* isolate, int64_t change_in_bytes) {
return isolate->AdjustAmountOfExternalAllocatedMemory(change_in_bytes);
}
void v8__Isolate__SetOOMErrorHandler(v8::Isolate* isolate,
v8::OOMErrorCallback callback) {
isolate->SetOOMErrorHandler(callback);

View file

@ -194,6 +194,10 @@ extern "C" {
isolate: *mut Isolate,
callback: OomErrorCallback,
);
fn v8__Isolate__AdjustAmountOfExternalAllocatedMemory(
isolate: *mut Isolate,
change_in_bytes: i64,
) -> i64;
fn v8__Isolate__SetPrepareStackTraceCallback(
isolate: *mut Isolate,
callback: PrepareStackTraceCallback,
@ -610,6 +614,22 @@ impl Isolate {
};
}
/// Adjusts the amount of registered external memory. Used to give V8 an
/// indication of the amount of externally allocated memory that is kept
/// alive by JavaScript objects. V8 uses this to decide when to perform
/// global garbage collections. Registering externally allocated memory
/// will trigger global garbage collections more often than it would
/// otherwise in an attempt to garbage collect the JavaScript objects
/// that keep the externally allocated memory alive.
pub fn adjust_amount_of_external_allocated_memory(
&mut self,
change_in_bytes: i64,
) -> i64 {
unsafe {
v8__Isolate__AdjustAmountOfExternalAllocatedMemory(self, change_in_bytes)
}
}
pub fn set_oom_error_handler(&mut self, callback: OomErrorCallback) {
unsafe { v8__Isolate__SetOOMErrorHandler(self, callback) };
}