| Index: src/platform-linux.cc
|
| diff --git a/src/platform-linux.cc b/src/platform-linux.cc
|
| index 2b7d10f3b292b64fb061988f1c2ce84ff54cc01f..0633fe6f78b955d94e0afd98f28c13ab90e3bc67 100644
|
| --- a/src/platform-linux.cc
|
| +++ b/src/platform-linux.cc
|
| @@ -58,6 +58,10 @@
|
| #include <asm/sigcontext.h>
|
| #endif
|
|
|
| +#if defined(LEAK_SANITIZER)
|
| +#include <sanitizer/lsan_interface.h>
|
| +#endif
|
| +
|
| #undef MAP_TYPE
|
|
|
| #include "v8.h"
|
| @@ -349,6 +353,9 @@ VirtualMemory::VirtualMemory(size_t size, size_t alignment)
|
|
|
| address_ = static_cast<void*>(aligned_base);
|
| size_ = aligned_size;
|
| +#if defined(LEAK_SANITIZER)
|
| + __lsan_register_root_region(address_, size_);
|
| +#endif
|
| }
|
|
|
|
|
| @@ -398,6 +405,9 @@ void* VirtualMemory::ReserveRegion(size_t size) {
|
|
|
| if (result == MAP_FAILED) return NULL;
|
|
|
| +#if defined(LEAK_SANITIZER)
|
| + __lsan_register_root_region(result, size);
|
| +#endif
|
| return result;
|
| }
|
|
|
| @@ -434,6 +444,9 @@ bool VirtualMemory::UncommitRegion(void* base, size_t size) {
|
|
|
|
|
| bool VirtualMemory::ReleaseRegion(void* base, size_t size) {
|
| +#if defined(LEAK_SANITIZER)
|
| + __lsan_unregister_root_region(base, size);
|
| +#endif
|
| return munmap(base, size) == 0;
|
| }
|
|
|
|
|