|
7 | 7 |
|
8 | 8 | namespace node {
|
9 | 9 |
|
| 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 | + |
10 | 21 | void NODE_HTTP_SERVER_REQUEST(node_lttng_http_server_request_t* req,
|
11 | 22 | node_lttng_connection_t* conn,
|
12 | 23 | const char *remote, int port,
|
@@ -48,42 +59,33 @@ void NODE_NET_STREAM_END(node_lttng_connection_t* conn,
|
48 | 59 | void NODE_GC_START(v8::GCType type,
|
49 | 60 | v8::GCCallbackFlags flags,
|
50 | 61 | 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 |
65 | 72 |
|
66 | 73 | tracepoint(node, gc_start, typeStr, flagsStr);
|
67 | 74 | }
|
68 | 75 |
|
69 |
| - |
70 | 76 | void NODE_GC_DONE(v8::GCType type,
|
71 | 77 | v8::GCCallbackFlags flags,
|
72 | 78 | 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 |
87 | 89 |
|
88 | 90 | tracepoint(node, gc_done, typeStr, flagsStr);
|
89 | 91 | }
|
|
0 commit comments