| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent f87836f commit c0f0845
5 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -161,6 +161,28 @@ Metadata::Versions::Versions() { | |||
| 161 | 161 | nbytes = NBYTES_VERSION; | |
| 162 | 162 | } | |
| 163 | 163 | ||
| 164 | + std::array<std::pair<std::string_view, std::string_view>, | ||
| 165 | + NODE_VERSIONS_KEY_COUNT> | ||
| 166 | + Metadata::Versions::pairs() const { | ||
| 167 | + std::array<std::pair<std::string_view, std::string_view>, | ||
| 168 | + NODE_VERSIONS_KEY_COUNT> | ||
| 169 | + versions_array; | ||
| 170 | + auto slot = versions_array.begin(); | ||
| 171 | + | ||
| 172 | + #define V(key) \ | ||
| 173 | + do { \ | ||
| 174 | + *slot++ = std::pair<std::string_view, std::string_view>( \ | ||
| 175 | + #key, per_process::metadata.versions.key); \ | ||
| 176 | + } while (0); | ||
| 177 | + NODE_VERSIONS_KEYS(V) | ||
| 178 | + #undef V | ||
| 179 | + | ||
| 180 | + std::ranges::sort(versions_array, | ||
| 181 | + [](auto& a, auto& b) { return a.first < b.first; }); | ||
| 182 | + | ||
| 183 | + return versions_array; | ||
| 184 | + } | ||
| 185 | + | ||
| 164 | 186 | Metadata::Release::Release() : name(NODE_RELEASE) { | |
| 165 | 187 | #if NODE_VERSION_IS_LTS | |
| 166 | 188 | lts = NODE_VERSION_LTS_CODENAME; | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3,7 +3,9 @@ | |||
| 3 | 3 | ||
| 4 | 4 | #if defined(NODE_WANT_INTERNALS) && NODE_WANT_INTERNALS | |
| 5 | 5 | ||
| 6 | + #include <array> | ||
| 6 | 7 | #include <string> | |
| 8 | + #include <utility> | ||
| 7 | 9 | #include "node_version.h" | |
| 8 | 10 | ||
| 9 | 11 | #if HAVE_OPENSSL | |
@@ -98,6 +100,10 @@ namespace node { | |||
| 98 | 100 | NODE_VERSIONS_KEY_QUIC(V) \ | |
| 99 | 101 | NODE_VERSIONS_KEY_SQLITE(V) | |
| 100 | 102 | ||
| 103 | + #define V(key) +1 | ||
| 104 | + constexpr int NODE_VERSIONS_KEY_COUNT = NODE_VERSIONS_KEYS(V); | ||
| 105 | + #undef V | ||
| 106 | + | ||
| 101 | 107 | class Metadata { | |
| 102 | 108 | public: | |
| 103 | 109 | Metadata(); | |
@@ -118,6 +124,10 @@ class Metadata { | |||
| 118 | 124 | #define V(key) std::string key; | |
| 119 | 125 | NODE_VERSIONS_KEYS(V) | |
| 120 | 126 | #undef V | |
| 127 | + | ||
| 128 | + std::array<std::pair<std::string_view, std::string_view>, | ||
| 129 | + NODE_VERSIONS_KEY_COUNT> | ||
| 130 | + pairs() const; | ||
| 121 | 131 | }; | |
| 122 | 132 | ||
| 123 | 133 | struct Release { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -83,24 +83,7 @@ static void SetVersions(Isolate* isolate, Local<Object> versions) { | |||
| 83 | 83 | READONLY_STRING_PROPERTY( | |
| 84 | 84 | versions, "node", per_process::metadata.versions.node); | |
| 85 | 85 | ||
| 86 | - #define V(key) +1 | ||
| 87 | - std::pair<std::string_view, std::string_view> | ||
| 88 | - versions_array[NODE_VERSIONS_KEYS(V)]; | ||
| 89 | - #undef V | ||
| 90 | - auto* slot = &versions_array[0]; | ||
| 91 | - | ||
| 92 | - #define V(key) \ | ||
| 93 | - do { \ | ||
| 94 | - *slot++ = std::pair<std::string_view, std::string_view>( \ | ||
| 95 | - #key, per_process::metadata.versions.key); \ | ||
| 96 | - } while (0); | ||
| 97 | - NODE_VERSIONS_KEYS(V) | ||
| 98 | - #undef V | ||
| 99 | - | ||
| 100 | - std::ranges::sort(versions_array, | ||
| 101 | - [](auto& a, auto& b) { return a.first < b.first; }); | ||
| 102 | - | ||
| 103 | - for (const auto& version : versions_array) { | ||
| 86 | + for (const auto& version : per_process::metadata.versions.pairs()) { | ||
| 104 | 87 | versions | |
| 105 | 88 | ->DefineOwnProperty(context, | |
| 106 | 89 | OneByteString(isolate, version.first), | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -797,24 +797,7 @@ static void PrintComponentVersions(JSONWriter* writer) { | |||
| 797 | 797 | ||
| 798 | 798 | writer->json_objectstart("componentVersions"); | |
| 799 | 799 | ||
| 800 | - #define V(key) +1 | ||
| 801 | - std::pair<std::string_view, std::string_view> | ||
| 802 | - versions_array[NODE_VERSIONS_KEYS(V)]; | ||
| 803 | - #undef V | ||
| 804 | - auto* slot = &versions_array[0]; | ||
| 805 | - | ||
| 806 | - #define V(key) \ | ||
| 807 | - do { \ | ||
| 808 | - *slot++ = std::pair<std::string_view, std::string_view>( \ | ||
| 809 | - #key, per_process::metadata.versions.key); \ | ||
| 810 | - } while (0); | ||
| 811 | - NODE_VERSIONS_KEYS(V) | ||
| 812 | - #undef V | ||
| 813 | - | ||
| 814 | - std::ranges::sort(versions_array, | ||
| 815 | - [](auto& a, auto& b) { return a.first < b.first; }); | ||
| 816 | - | ||
| 817 | - for (const auto& version : versions_array) { | ||
| 800 | + for (const auto& version : per_process::metadata.versions.pairs()) { | ||
| 818 | 801 | writer->json_keyvalue(version.first, version.second); | |
| 819 | 802 | } | |
| 820 | 803 | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -239,13 +239,9 @@ std::unique_ptr<v8::ConvertableToTraceFormat> AsyncWrapArgs::Cast() const { | |||
| 239 | 239 | std::unique_ptr<v8::ConvertableToTraceFormat> ProcessMeta::Cast() const { | |
| 240 | 240 | auto trace_process = tracing::TracedValue::Create(); | |
| 241 | 241 | trace_process->BeginDictionary("versions"); | |
| 242 | - | ||
| 243 | - #define V(key) \ | ||
| 244 | - trace_process->SetString(#key, per_process::metadata.versions.key.c_str()); | ||
| 245 | - | ||
| 246 | - NODE_VERSIONS_KEYS(V) | ||
| 247 | - #undef V | ||
| 248 | - | ||
| 242 | + for (const auto& version : per_process::metadata.versions.pairs()) { | ||
| 243 | + trace_process->SetString(version.first.data(), version.second.data()); | ||
| 244 | + } | ||
| 249 | 245 | trace_process->EndDictionary(); | |
| 250 | 246 | ||
| 251 | 247 | trace_process->SetString("arch", per_process::metadata.arch.c_str()); | |
| Back | FazBrowse Home | New Git URL |
0 commit comments