diff options
Diffstat (limited to 'src/node_wasi.cc')
-rw-r--r-- | src/node_wasi.cc | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/node_wasi.cc b/src/node_wasi.cc index e9bcb42ad6..39669df490 100644 --- a/src/node_wasi.cc +++ b/src/node_wasi.cc @@ -1,6 +1,8 @@ #include "env-inl.h" #include "base_object-inl.h" #include "debug_utils.h" +#include "memory_tracker-inl.h" +#include "node_mem-inl.h" #include "util-inl.h" #include "node.h" #include "uv.h" @@ -85,14 +87,33 @@ WASI::WASI(Environment* env, Local<Object> object, uvwasi_options_t* options) : BaseObject(env, object) { MakeWeak(); + alloc_info_ = MakeAllocator(); + options->allocator = &alloc_info_; CHECK_EQ(uvwasi_init(&uvw_, options), UVWASI_ESUCCESS); } WASI::~WASI() { uvwasi_destroy(&uvw_); + CHECK_EQ(current_uvwasi_memory_, 0); } +void WASI::MemoryInfo(MemoryTracker* tracker) const { + tracker->TrackField("memory", memory_); + tracker->TrackFieldWithSize("uvwasi_memory", current_uvwasi_memory_); +} + +void WASI::CheckAllocatedSize(size_t previous_size) const { + CHECK_GE(current_uvwasi_memory_, previous_size); +} + +void WASI::IncreaseAllocatedSize(size_t size) { + current_uvwasi_memory_ += size; +} + +void WASI::DecreaseAllocatedSize(size_t size) { + current_uvwasi_memory_ -= size; +} void WASI::New(const FunctionCallbackInfo<Value>& args) { CHECK(args.IsConstructCall()); |