summaryrefslogtreecommitdiff
path: root/grpc/third_party/abseil-cpp/absl/flags/reflection.cc
diff options
context:
space:
mode:
Diffstat (limited to 'grpc/third_party/abseil-cpp/absl/flags/reflection.cc')
-rw-r--r--grpc/third_party/abseil-cpp/absl/flags/reflection.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/grpc/third_party/abseil-cpp/absl/flags/reflection.cc b/grpc/third_party/abseil-cpp/absl/flags/reflection.cc
index 0c761101..dbce4032 100644
--- a/grpc/third_party/abseil-cpp/absl/flags/reflection.cc
+++ b/grpc/third_party/abseil-cpp/absl/flags/reflection.cc
@@ -18,11 +18,11 @@
#include <assert.h>
#include <atomic>
-#include <map>
#include <string>
#include "absl/base/config.h"
#include "absl/base/thread_annotations.h"
+#include "absl/container/flat_hash_map.h"
#include "absl/flags/commandlineflag.h"
#include "absl/flags/internal/private_handle_accessor.h"
#include "absl/flags/internal/registry.h"
@@ -68,7 +68,7 @@ class FlagRegistry {
friend void FinalizeRegistry();
// The map from name to flag, for FindFlag().
- using FlagMap = std::map<absl::string_view, CommandLineFlag*>;
+ using FlagMap = absl::flat_hash_map<absl::string_view, CommandLineFlag*>;
using FlagIterator = FlagMap::iterator;
using FlagConstIterator = FlagMap::const_iterator;
FlagMap flags_;
@@ -204,6 +204,10 @@ void FinalizeRegistry() {
for (const auto& f : registry.flags_) {
registry.flat_flags_.push_back(f.second);
}
+ std::sort(std::begin(registry.flat_flags_), std::end(registry.flat_flags_),
+ [](const CommandLineFlag* lhs, const CommandLineFlag* rhs) {
+ return lhs->Name() < rhs->Name();
+ });
registry.flags_.clear();
registry.finalized_flags_.store(true, std::memory_order_release);
}