|
8 | 8 | #include "path.h"
|
9 | 9 | #include "util-inl.h"
|
10 | 10 |
|
| 11 | +namespace node { |
| 12 | +using node::url_pattern::URLPatternRegexProvider; |
| 13 | + |
| 14 | +template <> |
| 15 | +struct MemoryRetainerTraits<ada::url_pattern<URLPatternRegexProvider>> { |
| 16 | + using Type = ada::url_pattern<URLPatternRegexProvider>; |
| 17 | + static void MemoryInfo(MemoryTracker* tracker, const Type& value) { |
| 18 | + tracker->TraitTrackInline(value.protocol_component, "protocol_component"); |
| 19 | + tracker->TraitTrackInline(value.username_component, "username_component"); |
| 20 | + tracker->TraitTrackInline(value.password_component, "password_component"); |
| 21 | + tracker->TraitTrackInline(value.hostname_component, "hostname_component"); |
| 22 | + tracker->TraitTrackInline(value.port_component, "port_component"); |
| 23 | + tracker->TraitTrackInline(value.pathname_component, "pathname_component"); |
| 24 | + tracker->TraitTrackInline(value.search_component, "search_component"); |
| 25 | + tracker->TraitTrackInline(value.hash_component, "hash_component"); |
| 26 | + } |
| 27 | + |
| 28 | + static const char* MemoryInfoName(const Type& value) { |
| 29 | + return "ada::url_pattern"; |
| 30 | + } |
| 31 | + |
| 32 | + static size_t SelfSize(const Type& value) { return sizeof(value); } |
| 33 | +}; |
| 34 | + |
| 35 | +template <> |
| 36 | +struct MemoryRetainerTraits< |
| 37 | + ada::url_pattern_component<URLPatternRegexProvider>> { |
| 38 | + using Type = ada::url_pattern_component<URLPatternRegexProvider>; |
| 39 | + static void MemoryInfo(MemoryTracker* tracker, const Type& value) { |
| 40 | + tracker->TrackField("pattern", value.pattern); |
| 41 | + tracker->TrackField("group_name_list", value.group_name_list); |
| 42 | + } |
| 43 | + |
| 44 | + static const char* MemoryInfoName(const Type& value) { |
| 45 | + return "ada::url_pattern_component"; |
| 46 | + } |
| 47 | + |
| 48 | + static size_t SelfSize(const Type& value) { return sizeof(value); } |
| 49 | +}; |
| 50 | + |
| 51 | +} // namespace node |
| 52 | + |
11 | 53 | namespace node::url_pattern {
|
12 | 54 |
|
13 | 55 | using v8::Array;
|
@@ -125,13 +167,7 @@ URLPattern::URLPattern(Environment* env,
|
125 | 167 | }
|
126 | 168 |
|
127 | 169 | void URLPattern::MemoryInfo(MemoryTracker* tracker) const {
|
128 |
| - tracker->TrackFieldWithSize("protocol", url_pattern_.get_protocol().size()); |
129 |
| - tracker->TrackFieldWithSize("username", url_pattern_.get_username().size()); |
130 |
| - tracker->TrackFieldWithSize("password", url_pattern_.get_password().size()); |
131 |
| - tracker->TrackFieldWithSize("hostname", url_pattern_.get_hostname().size()); |
132 |
| - tracker->TrackFieldWithSize("pathname", url_pattern_.get_pathname().size()); |
133 |
| - tracker->TrackFieldWithSize("search", url_pattern_.get_search().size()); |
134 |
| - tracker->TrackFieldWithSize("hash", url_pattern_.get_hash().size()); |
| 170 | + tracker->TraitTrackInline(url_pattern_, "url_pattern"); |
135 | 171 | }
|
136 | 172 |
|
137 | 173 | void URLPattern::New(const FunctionCallbackInfo<Value>& args) {
|
|
0 commit comments