77
88namespace node {
99
10+ #define FOR_ALL_GC_TYPES (APPLY ) \
11+ APPLY (kGCTypeScavenge ) \
12+ APPLY (kGCTypeMarkSweepCompact ) \
13+ APPLY (kGCTypeAll )
14+
15+ #define FOR_ALL_GC_CALLBACK_FLAGS (APPLY ) \
16+ APPLY (kNoGCCallbackFlags ) \
17+ APPLY (kGCCallbackFlagConstructRetainedObjectInfos ) \
18+ APPLY (kGCCallbackFlagForced ) \
19+ APPLY (kGCCallbackFlagSynchronousPhantomCallbackProcessing )
20+
1021void NODE_HTTP_SERVER_REQUEST (node_lttng_http_server_request_t * req,
1122 node_lttng_connection_t * conn,
1223 const char *remote, int port,
@@ -48,42 +59,33 @@ void NODE_NET_STREAM_END(node_lttng_connection_t* conn,
4859void NODE_GC_START (v8::GCType type,
4960 v8::GCCallbackFlags flags,
5061 v8::Isolate* isolate) {
51- const char * typeStr = " " ;
52- const char * flagsStr = " " ;
53- if (type == v8::GCType::kGCTypeScavenge ) {
54- typeStr = " kGCTypeScavenge" ;
55- } else if (type == v8::GCType::kGCTypeMarkSweepCompact ) {
56- typeStr = " kGCTypeMarkSweepCompact" ;
57- } else if (type == v8::GCType::kGCTypeAll ) {
58- typeStr = " kGCTypeAll" ;
59- }
60- if (flags == v8::GCCallbackFlags::kNoGCCallbackFlags ) {
61- flagsStr = " kNoGCCallbackFlags" ;
62- } else if (flags == v8::GCCallbackFlags::kGCCallbackFlagCompacted ) {
63- flagsStr = " kGCCallbackFlagCompacted" ;
64- }
62+ const char * typeStr = " Unkown GC Type" ;
63+ const char * flagsStr = " Unknown GC Flag" ;
64+
65+ #define BUILD_IF (f ) if (type == v8::GCType::f) { typeStr = #f; }
66+ FOR_ALL_GC_TYPES (BUILD_IF);
67+ #undef BUILD_IF
68+
69+ #define BUILD_IF (f ) if (flags == v8::GCCallbackFlags::f) { flagsStr = #f; }
70+ FOR_ALL_GC_CALLBACK_FLAGS (BUILD_IF);
71+ #undef BUILD_IF
6572
6673 tracepoint (node, gc_start, typeStr, flagsStr);
6774}
6875
69-
7076void NODE_GC_DONE (v8::GCType type,
7177 v8::GCCallbackFlags flags,
7278 v8::Isolate* isolate) {
73- const char * typeStr = " " ;
74- const char * flagsStr = " " ;
75- if (type == v8::GCType::kGCTypeScavenge ) {
76- typeStr = " kGCTypeScavenge" ;
77- } else if (type == v8::GCType::kGCTypeMarkSweepCompact ) {
78- typeStr = " kGCTypeMarkSweepCompact" ;
79- } else if (type == v8::GCType::kGCTypeAll ) {
80- typeStr = " kGCTypeAll" ;
81- }
82- if (flags == v8::GCCallbackFlags::kNoGCCallbackFlags ) {
83- flagsStr = " kNoGCCallbackFlags" ;
84- } else if (flags == v8::GCCallbackFlags::kGCCallbackFlagCompacted ) {
85- flagsStr = " kGCCallbackFlagCompacted" ;
86- }
79+ const char * typeStr = " Unkown GC Type" ;
80+ const char * flagsStr = " Unknown GC Flag" ;
81+
82+ #define BUILD_IF (f ) if (type == v8::GCType::f) { typeStr = #f; }
83+ FOR_ALL_GC_TYPES (BUILD_IF);
84+ #undef BUILD_IF
85+
86+ #define BUILD_IF (f ) if (flags == v8::GCCallbackFlags::f) { flagsStr = #f; }
87+ FOR_ALL_GC_CALLBACK_FLAGS (BUILD_IF);
88+ #undef BUILD_IF
8789
8890 tracepoint (node, gc_done, typeStr, flagsStr);
8991}
0 commit comments