mirror of
https://github.com/nodejs/node.git
synced 2024-12-01 16:10:02 +01:00
92fa0fcdb7
This patch: - Refactors the `MemoryRetainer` API so that the impementer no longer calls `TrackThis()` that sets the size of node on the top of the stack, which may be hard to understand. Instead now they implements `SelfSize()` to provide their self sizes. Also documents the API in the header. - Refactors `MemoryTracker` so it calls `MemoryInfoName()` and `SelfSize()` of `MemoryRetainer` to retrieve info about them, and separate `node_names` and `edge_names` so the edges can be properly named with reference names and the nodes can be named with class names. (Previously the nodes are named with reference names while the edges are all indexed and appear as array elements). - Adds `SET_MEMORY_INFO_NAME()`, `SET_SELF_SIZE()` and `SET_NO_MEMORY_INFO()` convenience macros - Fixes a few `MemoryInfo` calls in some `MemoryRetainers` to track their references properly. - Refactors the heapdump tests to check both node names and edge names, distinguishing between wrapped JS nodes (without prefixes) and embedder wrappers (prefixed with `Node / `). PR-URL: https://github.com/nodejs/node/pull/23072 Reviewed-By: Anna Henningsen <anna@addaleax.net>
29 lines
617 B
C++
29 lines
617 B
C++
#ifndef SRC_CONNECT_WRAP_H_
|
|
#define SRC_CONNECT_WRAP_H_
|
|
|
|
#if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
|
|
#include "env.h"
|
|
#include "req_wrap-inl.h"
|
|
#include "async_wrap.h"
|
|
#include "v8.h"
|
|
|
|
namespace node {
|
|
|
|
class ConnectWrap : public ReqWrap<uv_connect_t> {
|
|
public:
|
|
ConnectWrap(Environment* env,
|
|
v8::Local<v8::Object> req_wrap_obj,
|
|
AsyncWrap::ProviderType provider);
|
|
|
|
SET_NO_MEMORY_INFO()
|
|
SET_MEMORY_INFO_NAME(ConnectWrap)
|
|
SET_SELF_SIZE(ConnectWrap)
|
|
};
|
|
|
|
} // namespace node
|
|
|
|
#endif // defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS
|
|
|
|
#endif // SRC_CONNECT_WRAP_H_
|