diff options
Diffstat (limited to 'src/memory_tracker-inl.h')
-rw-r--r-- | src/memory_tracker-inl.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/memory_tracker-inl.h b/src/memory_tracker-inl.h index da37f72c73..14635aaf5e 100644 --- a/src/memory_tracker-inl.h +++ b/src/memory_tracker-inl.h @@ -109,6 +109,16 @@ void MemoryTracker::TrackField(const char* edge_name, TrackField(edge_name, value.get(), node_name); } +template <typename T> +void MemoryTracker::TrackField(const char* edge_name, + const std::shared_ptr<T>& value, + const char* node_name) { + if (value.get() == nullptr) { + return; + } + TrackField(edge_name, value.get(), node_name); +} + template <typename T, typename Iterator> void MemoryTracker::TrackField(const char* edge_name, const T& value, @@ -206,6 +216,12 @@ void MemoryTracker::TrackField(const char* edge_name, TrackFieldWithSize(edge_name, value.size, "MallocedBuffer"); } +void MemoryTracker::TrackField(const char* edge_name, + const v8::BackingStore* value, + const char* node_name) { + TrackFieldWithSize(edge_name, value->ByteLength(), "BackingStore"); +} + void MemoryTracker::TrackField(const char* name, const uv_buf_t& value, const char* node_name) { |