summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJoyee Cheung <joyeec9h3@gmail.com>2018-07-22 09:12:19 +0800
committerJoyee Cheung <joyeec9h3@gmail.com>2018-07-27 15:51:19 +0800
commit28a3e280eca67f906ae3b47730fe21a389b7bccb (patch)
tree18a051e45196e6d8a677dd9122470d285e3e34aa /src
parent48e5b350b3dd236353e3e8e1196a09f5c5bcda77 (diff)
downloadandroid-node-v8-28a3e280eca67f906ae3b47730fe21a389b7bccb.tar.gz
android-node-v8-28a3e280eca67f906ae3b47730fe21a389b7bccb.tar.bz2
android-node-v8-28a3e280eca67f906ae3b47730fe21a389b7bccb.zip
src: add proper MemoryInfoName to wrappers
- Use camel case names for memory retainers inherited from AsyncWrap instead of their provider names (which are all in upper case) - Assign class names to wraps so that they appear in the heap snapshot as nodes with class names as node names. Previously some nodes are named with reference names, which are supposed to be edge names instead. PR-URL: https://github.com/nodejs/node/pull/21939 Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Gus Caplan <me@gus.host> Reviewed-By: James M Snell <jasnell@gmail.com> Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Diffstat (limited to 'src')
-rw-r--r--src/async_wrap.h2
-rw-r--r--src/base_object.h5
-rw-r--r--src/cares_wrap.cc33
-rw-r--r--src/connect_wrap.h2
-rw-r--r--src/fs_event_wrap.cc2
-rw-r--r--src/inspector_js_api.cc2
-rw-r--r--src/js_stream.h2
-rw-r--r--src/module_wrap.h2
-rw-r--r--src/node_contextify.cc2
-rw-r--r--src/node_crypto.h14
-rw-r--r--src/node_crypto_bio.h2
-rw-r--r--src/node_file.h10
-rw-r--r--src/node_http2.h8
-rw-r--r--src/node_http_parser.cc1
-rw-r--r--src/node_i18n.cc2
-rw-r--r--src/node_messaging.h6
-rw-r--r--src/node_serdes.cc4
-rw-r--r--src/node_stat_watcher.h2
-rw-r--r--src/node_trace_events.cc2
-rw-r--r--src/node_worker.h3
-rw-r--r--src/node_zlib.cc3
-rw-r--r--src/pipe_wrap.h2
-rw-r--r--src/process_wrap.cc2
-rw-r--r--src/sharedarraybuffer_metadata.cc2
-rw-r--r--src/signal_wrap.cc2
-rw-r--r--src/stream_base.h5
-rw-r--r--src/stream_pipe.h2
-rw-r--r--src/tcp_wrap.h11
-rw-r--r--src/tls_wrap.h2
-rw-r--r--src/tty_wrap.h2
-rw-r--r--src/udp_wrap.cc2
-rw-r--r--src/udp_wrap.h2
32 files changed, 141 insertions, 2 deletions
diff --git a/src/async_wrap.h b/src/async_wrap.h
index f748dc801d..fed05ab021 100644
--- a/src/async_wrap.h
+++ b/src/async_wrap.h
@@ -174,7 +174,7 @@ class AsyncWrap : public BaseObject {
v8::Local<v8::Value>* argv);
virtual std::string diagnostic_name() const;
- std::string MemoryInfoName() const override;
+ virtual std::string MemoryInfoName() const;
static void WeakCallback(const v8::WeakCallbackInfo<DestroyParam> &info);
diff --git a/src/base_object.h b/src/base_object.h
index e0f3f27950..64a2371433 100644
--- a/src/base_object.h
+++ b/src/base_object.h
@@ -33,6 +33,11 @@ namespace node {
class Environment;
+#define ADD_MEMORY_INFO_NAME(name) \
+ std::string MemoryInfoName() const override { \
+ return #name; \
+ }
+
class BaseObject : public MemoryRetainer {
public:
// Associates this object with `object`. It uses the 0th internal field for
diff --git a/src/cares_wrap.cc b/src/cares_wrap.cc
index 604213a2c6..53d7a72442 100644
--- a/src/cares_wrap.cc
+++ b/src/cares_wrap.cc
@@ -127,6 +127,7 @@ struct node_ares_task : public MemoryRetainer {
uv_poll_t poll_watcher;
void MemoryInfo(MemoryTracker* tracker) const override;
+ ADD_MEMORY_INFO_NAME(node_ares_task)
};
struct TaskHash {
@@ -173,9 +174,11 @@ class ChannelWrap : public AsyncWrap {
tracker->TrackThis(this);
if (timer_handle_ != nullptr)
tracker->TrackFieldWithSize("timer handle", sizeof(*timer_handle_));
- tracker->TrackField("task list", task_list_);
+ tracker->TrackField("node_ares_task_list", task_list_);
}
+ ADD_MEMORY_INFO_NAME(ChannelWrap)
+
static void AresTimeout(uv_timer_t* handle);
private:
@@ -225,6 +228,8 @@ class GetAddrInfoReqWrap : public ReqWrap<uv_getaddrinfo_t> {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(GetAddrInfoReqWrap)
+
bool verbatim() const { return verbatim_; }
private:
@@ -246,6 +251,8 @@ class GetNameInfoReqWrap : public ReqWrap<uv_getnameinfo_t> {
void MemoryInfo(MemoryTracker* tracker) const override {
tracker->TrackThis(this);
}
+
+ ADD_MEMORY_INFO_NAME(GetNameInfoReqWrap)
};
GetNameInfoReqWrap::GetNameInfoReqWrap(Environment* env,
@@ -1178,6 +1185,8 @@ class QueryAnyWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryAnyWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1357,6 +1366,8 @@ class QueryAWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryAWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1403,6 +1414,8 @@ class QueryAaaaWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryAaaaWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1449,6 +1462,8 @@ class QueryCnameWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryCnameWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1482,6 +1497,8 @@ class QueryMxWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryMxWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1515,6 +1532,8 @@ class QueryNsWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryNsWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1548,6 +1567,8 @@ class QueryTxtWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryTxtWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1580,6 +1601,8 @@ class QuerySrvWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QuerySrvWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1611,6 +1634,8 @@ class QueryPtrWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryPtrWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1644,6 +1669,8 @@ class QueryNaptrWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QueryNaptrWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1676,6 +1703,8 @@ class QuerySoaWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(QuerySoaWrap)
+
protected:
void Parse(unsigned char* buf, int len) override {
HandleScope handle_scope(env()->isolate());
@@ -1757,6 +1786,8 @@ class GetHostByAddrWrap: public QueryWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(GetHostByAddrWrap)
+
protected:
void Parse(struct hostent* host) override {
HandleScope handle_scope(env()->isolate());
diff --git a/src/connect_wrap.h b/src/connect_wrap.h
index 587e4c6b05..2370157eaa 100644
--- a/src/connect_wrap.h
+++ b/src/connect_wrap.h
@@ -19,6 +19,8 @@ class ConnectWrap : public ReqWrap<uv_connect_t> {
void MemoryInfo(MemoryTracker* tracker) const override {
tracker->TrackThis(this);
}
+
+ ADD_MEMORY_INFO_NAME(ConnectWrap)
};
} // namespace node
diff --git a/src/fs_event_wrap.cc b/src/fs_event_wrap.cc
index 7587ace8e3..e0cdab4d3e 100644
--- a/src/fs_event_wrap.cc
+++ b/src/fs_event_wrap.cc
@@ -61,6 +61,8 @@ class FSEventWrap: public HandleWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(FSEventWrap)
+
private:
static const encoding kDefaultEncoding = UTF8;
diff --git a/src/inspector_js_api.cc b/src/inspector_js_api.cc
index a8e2e8ecaf..4e95598d3a 100644
--- a/src/inspector_js_api.cc
+++ b/src/inspector_js_api.cc
@@ -109,6 +109,8 @@ class JSBindingsConnection : public AsyncWrap {
tracker->TrackFieldWithSize("session", sizeof(*session_));
}
+ ADD_MEMORY_INFO_NAME(JSBindingsConnection)
+
private:
std::unique_ptr<InspectorSession> session_;
Persistent<Function> callback_;
diff --git a/src/js_stream.h b/src/js_stream.h
index f3406ae83e..05fb688f2f 100644
--- a/src/js_stream.h
+++ b/src/js_stream.h
@@ -31,6 +31,8 @@ class JSStream : public AsyncWrap, public StreamBase {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(JSStream)
+
protected:
JSStream(Environment* env, v8::Local<v8::Object> obj);
diff --git a/src/module_wrap.h b/src/module_wrap.h
index 2d6f5c49d8..3e19b6c9eb 100644
--- a/src/module_wrap.h
+++ b/src/module_wrap.h
@@ -39,6 +39,8 @@ class ModuleWrap : public BaseObject {
tracker->TrackField("resolve_cache", resolve_cache_);
}
+ ADD_MEMORY_INFO_NAME(ModuleWrap)
+
private:
ModuleWrap(Environment* env,
v8::Local<v8::Object> object,
diff --git a/src/node_contextify.cc b/src/node_contextify.cc
index e4b4fef3dc..74b7c594d5 100644
--- a/src/node_contextify.cc
+++ b/src/node_contextify.cc
@@ -592,6 +592,8 @@ class ContextifyScript : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(ContextifyScript)
+
public:
static void Init(Environment* env, Local<Object> target) {
HandleScope scope(env->isolate());
diff --git a/src/node_crypto.h b/src/node_crypto.h
index 7df2660c77..ee069c9cf7 100644
--- a/src/node_crypto.h
+++ b/src/node_crypto.h
@@ -109,6 +109,8 @@ class SecureContext : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(SecureContext)
+
SSLCtxPointer ctx_;
X509Pointer cert_;
X509Pointer issuer_;
@@ -345,6 +347,8 @@ class CipherBase : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(CipherBase)
+
protected:
enum CipherKind {
kCipher,
@@ -419,6 +423,8 @@ class Hmac : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(Hmac)
+
protected:
void HmacInit(const char* hash_type, const char* key, int key_len);
bool HmacUpdate(const char* data, int len);
@@ -446,6 +452,8 @@ class Hash : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(Hash)
+
bool HashInit(const char* hash_type);
bool HashUpdate(const char* data, int len);
@@ -489,6 +497,8 @@ class SignBase : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(SignBase)
+
protected:
void CheckThrow(Error error);
@@ -605,6 +615,8 @@ class DiffieHellman : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(DiffieHellman)
+
private:
static void GetField(const v8::FunctionCallbackInfo<v8::Value>& args,
const BIGNUM* (*get_field)(const DH*),
@@ -634,6 +646,8 @@ class ECDH : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(ECDH)
+
protected:
ECDH(Environment* env, v8::Local<v8::Object> wrap, ECKeyPointer&& key)
: BaseObject(env, wrap),
diff --git a/src/node_crypto_bio.h b/src/node_crypto_bio.h
index dea010fa01..b4aa85f8fa 100644
--- a/src/node_crypto_bio.h
+++ b/src/node_crypto_bio.h
@@ -115,6 +115,8 @@ class NodeBIO : public MemoryRetainer {
tracker->TrackFieldWithSize("buffer", length_);
}
+ ADD_MEMORY_INFO_NAME(NodeBIO)
+
private:
static int New(BIO* bio);
static int Free(BIO* bio);
diff --git a/src/node_file.h b/src/node_file.h
index 141d1d42d7..73202d9c44 100644
--- a/src/node_file.h
+++ b/src/node_file.h
@@ -99,6 +99,8 @@ class FSReqWrap : public FSReqBase {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(FSReqWrap)
+
private:
DISALLOW_COPY_AND_ASSIGN(FSReqWrap);
};
@@ -162,6 +164,8 @@ class FSReqPromise : public FSReqBase {
tracker->TrackField("stats_field_array", stats_field_array_);
}
+ ADD_MEMORY_INFO_NAME(FSReqPromise)
+
private:
bool finished_ = false;
AliasedBuffer<NativeT, V8T> stats_field_array_;
@@ -201,6 +205,8 @@ class FileHandleReadWrap : public ReqWrap<uv_fs_t> {
tracker->TrackField("buffer", buffer_);
}
+ ADD_MEMORY_INFO_NAME(FileHandleReadWrap)
+
private:
FileHandle* file_handle_;
uv_buf_t buffer_;
@@ -252,6 +258,8 @@ class FileHandle : public AsyncWrap, public StreamBase {
tracker->TrackField("current_read", current_read_);
}
+ ADD_MEMORY_INFO_NAME(FileHandle)
+
private:
// Synchronous close that emits a warning
void Close();
@@ -284,6 +292,8 @@ class FileHandle : public AsyncWrap, public StreamBase {
tracker->TrackField("ref", ref_);
}
+ ADD_MEMORY_INFO_NAME(CloseReq)
+
void Resolve();
void Reject(Local<Value> reason);
diff --git a/src/node_http2.h b/src/node_http2.h
index a30ee58175..d7f8d9acae 100644
--- a/src/node_http2.h
+++ b/src/node_http2.h
@@ -575,6 +575,8 @@ class Http2Stream : public AsyncWrap,
tracker->TrackField("queue", queue_);
}
+ ADD_MEMORY_INFO_NAME(Http2Stream)
+
std::string diagnostic_name() const override;
// JavaScript API
@@ -761,6 +763,8 @@ class Http2Session : public AsyncWrap, public StreamListener {
pending_rst_streams_.size() * sizeof(int32_t));
}
+ ADD_MEMORY_INFO_NAME(Http2Session)
+
std::string diagnostic_name() const override;
// Schedule an RstStream for after the current write finishes.
@@ -1081,6 +1085,8 @@ class Http2Session::Http2Ping : public AsyncWrap {
tracker->TrackField("session", session_);
}
+ ADD_MEMORY_INFO_NAME(Http2Ping)
+
void Send(uint8_t* payload);
void Done(bool ack, const uint8_t* payload = nullptr);
@@ -1104,6 +1110,8 @@ class Http2Session::Http2Settings : public AsyncWrap {
tracker->TrackField("session", session_);
}
+ ADD_MEMORY_INFO_NAME(Http2Settings)
+
void Send();
void Done(bool ack);
diff --git a/src/node_http_parser.cc b/src/node_http_parser.cc
index e8fc1f22e4..318ad0b8e6 100644
--- a/src/node_http_parser.cc
+++ b/src/node_http_parser.cc
@@ -160,6 +160,7 @@ class Parser : public AsyncWrap, public StreamListener {
tracker->TrackField("current_buffer", current_buffer_);
}
+ ADD_MEMORY_INFO_NAME(Parser)
int on_message_begin() {
num_fields_ = num_values_ = 0;
diff --git a/src/node_i18n.cc b/src/node_i18n.cc
index 288ad77f61..45871f3d3e 100644
--- a/src/node_i18n.cc
+++ b/src/node_i18n.cc
@@ -254,6 +254,8 @@ class ConverterObject : public BaseObject, Converter {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(ConverterObject)
+
protected:
ConverterObject(Environment* env,
v8::Local<v8::Object> wrap,
diff --git a/src/node_messaging.h b/src/node_messaging.h
index da10300aed..b7fd392ccc 100644
--- a/src/node_messaging.h
+++ b/src/node_messaging.h
@@ -57,6 +57,8 @@ class Message : public MemoryRetainer {
void MemoryInfo(MemoryTracker* tracker) const override;
+ ADD_MEMORY_INFO_NAME(Message)
+
private:
MallocedBuffer<char> main_message_buf_;
std::vector<MallocedBuffer<char>> array_buffer_contents_;
@@ -98,6 +100,8 @@ class MessagePortData : public MemoryRetainer {
void MemoryInfo(MemoryTracker* tracker) const override;
+ ADD_MEMORY_INFO_NAME(MessagePortData)
+
private:
// After disentangling this message port, the owner handle (if any)
// is asynchronously triggered, so that it can close down naturally.
@@ -187,6 +191,8 @@ class MessagePort : public HandleWrap {
tracker->TrackField("data", data_);
}
+ ADD_MEMORY_INFO_NAME(MessagePort)
+
private:
void OnClose() override;
void OnMessage();
diff --git a/src/node_serdes.cc b/src/node_serdes.cc
index 4b2cc60b3f..5de0ddd819 100644
--- a/src/node_serdes.cc
+++ b/src/node_serdes.cc
@@ -57,6 +57,8 @@ class SerializerContext : public BaseObject,
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(SerializerContext)
+
private:
ValueSerializer serializer_;
};
@@ -86,6 +88,8 @@ class DeserializerContext : public BaseObject,
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(DeserializerContext)
+
private:
const uint8_t* data_;
const size_t length_;
diff --git a/src/node_stat_watcher.h b/src/node_stat_watcher.h
index baf6bdc14e..33c90ad3cd 100644
--- a/src/node_stat_watcher.h
+++ b/src/node_stat_watcher.h
@@ -48,6 +48,8 @@ class StatWatcher : public HandleWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(StatWatcher)
+
private:
static void Callback(uv_fs_poll_t* handle,
int status,
diff --git a/src/node_trace_events.cc b/src/node_trace_events.cc
index a2f4224948..684ea41a66 100644
--- a/src/node_trace_events.cc
+++ b/src/node_trace_events.cc
@@ -32,6 +32,8 @@ class NodeCategorySet : public BaseObject {
tracker->TrackField("categories", categories_);
}
+ ADD_MEMORY_INFO_NAME(NodeCategorySet)
+
private:
NodeCategorySet(Environment* env,
Local<Object> wrap,
diff --git a/src/node_worker.h b/src/node_worker.h
index bd737d4800..33df36e04c 100644
--- a/src/node_worker.h
+++ b/src/node_worker.h
@@ -33,6 +33,9 @@ class Worker : public AsyncWrap {
tracker->TrackField("parent_port", parent_port_);
}
+
+ ADD_MEMORY_INFO_NAME(Worker)
+
bool is_stopped() const;
static void New(const v8::FunctionCallbackInfo<v8::Value>& args);
diff --git a/src/node_zlib.cc b/src/node_zlib.cc
index 031666e19a..774d319249 100644
--- a/src/node_zlib.cc
+++ b/src/node_zlib.cc
@@ -653,6 +653,9 @@ class ZCtx : public AsyncWrap, public ThreadPoolWork {
zlib_memory_ + unreported_allocations_);
}
+
+ ADD_MEMORY_INFO_NAME(ZCtx)
+
private:
void Ref() {
if (++refs_ == 1) {
diff --git a/src/pipe_wrap.h b/src/pipe_wrap.h
index 9ed4f153ae..7faf5145ab 100644
--- a/src/pipe_wrap.h
+++ b/src/pipe_wrap.h
@@ -49,6 +49,8 @@ class PipeWrap : public ConnectionWrap<PipeWrap, uv_pipe_t> {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(PipeWrap)
+
private:
PipeWrap(Environment* env,
v8::Local<v8::Object> object,
diff --git a/src/process_wrap.cc b/src/process_wrap.cc
index b9a20c34a7..b54e17f211 100644
--- a/src/process_wrap.cc
+++ b/src/process_wrap.cc
@@ -70,6 +70,8 @@ class ProcessWrap : public HandleWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(ProcessWrap)
+
private:
static void New(const FunctionCallbackInfo<Value>& args) {
// This constructor should not be exposed to public javascript.
diff --git a/src/sharedarraybuffer_metadata.cc b/src/sharedarraybuffer_metadata.cc
index 95fed87c8d..3d5b96051e 100644
--- a/src/sharedarraybuffer_metadata.cc
+++ b/src/sharedarraybuffer_metadata.cc
@@ -51,6 +51,8 @@ class SABLifetimePartner : public BaseObject {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(SABLifetimePartner)
+
SharedArrayBufferMetadataReference reference;
};
diff --git a/src/signal_wrap.cc b/src/signal_wrap.cc
index 5568d22e4c..463a8a50d5 100644
--- a/src/signal_wrap.cc
+++ b/src/signal_wrap.cc
@@ -64,6 +64,8 @@ class SignalWrap : public HandleWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(SignalWrap)
+
private:
static void New(const FunctionCallbackInfo<Value>& args) {
// This constructor should not be exposed to public javascript.
diff --git a/src/stream_base.h b/src/stream_base.h
index bbb20e52e1..05c2a96236 100644
--- a/src/stream_base.h
+++ b/src/stream_base.h
@@ -350,6 +350,8 @@ class SimpleShutdownWrap : public ShutdownWrap, public OtherBase {
void MemoryInfo(MemoryTracker* tracker) const override {
tracker->TrackThis(this);
}
+
+ ADD_MEMORY_INFO_NAME(SimpleShutdownWrap)
};
template <typename OtherBase>
@@ -364,6 +366,9 @@ class SimpleWriteWrap : public WriteWrap, public OtherBase {
tracker->TrackThis(this);
tracker->TrackFieldWithSize("storage", StorageSize());
}
+
+
+ ADD_MEMORY_INFO_NAME(SimpleWriteWrap)
};
} // namespace node
diff --git a/src/stream_pipe.h b/src/stream_pipe.h
index 36a0b1dc08..c76afac416 100644
--- a/src/stream_pipe.h
+++ b/src/stream_pipe.h
@@ -22,6 +22,8 @@ class StreamPipe : public AsyncWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(StreamPipe)
+
private:
inline StreamBase* source();
inline StreamBase* sink();
diff --git a/src/tcp_wrap.h b/src/tcp_wrap.h
index d6ca930609..829c1b22bf 100644
--- a/src/tcp_wrap.h
+++ b/src/tcp_wrap.h
@@ -48,6 +48,17 @@ class TCPWrap : public ConnectionWrap<TCPWrap, uv_tcp_t> {
tracker->TrackThis(this);
}
+ std::string MemoryInfoName() const override {
+ switch (provider_type()) {
+ case ProviderType::PROVIDER_TCPWRAP:
+ return "TCPSocketWrap";
+ case ProviderType::PROVIDER_TCPSERVERWRAP:
+ return "TCPServerWrap";
+ default:
+ UNREACHABLE();
+ }
+ }
+
private:
typedef uv_tcp_t HandleType;
diff --git a/src/tls_wrap.h b/src/tls_wrap.h
index 5f4fd3f707..aea8568b11 100644
--- a/src/tls_wrap.h
+++ b/src/tls_wrap.h
@@ -78,6 +78,8 @@ class TLSWrap : public AsyncWrap,
void MemoryInfo(MemoryTracker* tracker) const override;
+ ADD_MEMORY_INFO_NAME(TLSWrap)
+
protected:
inline StreamBase* underlying_stream() {
return static_cast<StreamBase*>(stream_);
diff --git a/src/tty_wrap.h b/src/tty_wrap.h
index cca5650ddb..45357cfa46 100644
--- a/src/tty_wrap.h
+++ b/src/tty_wrap.h
@@ -42,6 +42,8 @@ class TTYWrap : public LibuvStreamWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(TTYWrap)
+
private:
TTYWrap(Environment* env,
v8::Local<v8::Object> object,
diff --git a/src/udp_wrap.cc b/src/udp_wrap.cc
index e5243319a5..2ef5c61358 100644
--- a/src/udp_wrap.cc
+++ b/src/udp_wrap.cc
@@ -60,6 +60,8 @@ class SendWrap : public ReqWrap<uv_udp_send_t> {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(SendWrap)
+
private:
const bool have_callback_;
};
diff --git a/src/udp_wrap.h b/src/udp_wrap.h
index 3792bcc459..ca048f5aef 100644
--- a/src/udp_wrap.h
+++ b/src/udp_wrap.h
@@ -68,6 +68,8 @@ class UDPWrap: public HandleWrap {
tracker->TrackThis(this);
}
+ ADD_MEMORY_INFO_NAME(UDPWrap)
+
private:
typedef uv_udp_t HandleType;