refactor(3p/nix/libexpr): Use Abseil collection types for parser state
Replaces the previous uses of the (ordered!) std::map and std::set
with absl::flat_hash_{map|set}.
After some careful reading it seems that there is actually no
ordering dependency on these types, and the (drop-in) replacements
perform slightly better.
Overall this is not fixing a bottleneck, just a driveby thing.
Change-Id: Ided695dc75676bd58515aa9382df0be0a09c565e
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1220
Reviewed-by: glittershark <grfn@gws.fyi>
Reviewed-by: isomer <isomer@tvl.fyi>
Tested-by: BuildkiteCI
This commit is contained in:
parent
1b42504a12
commit
d470ec0d29
2 changed files with 13 additions and 2 deletions
5
third_party/nix/src/libexpr/symbol-table.hh
vendored
5
third_party/nix/src/libexpr/symbol-table.hh
vendored
|
|
@ -26,6 +26,11 @@ class Symbol {
|
|||
bool empty() const { return s->empty(); }
|
||||
|
||||
friend std::ostream& operator<<(std::ostream& str, const Symbol& sym);
|
||||
|
||||
template <typename H>
|
||||
friend H AbslHashValue(H h, const Symbol& c) {
|
||||
return H::combine(std::move(h), c.s);
|
||||
}
|
||||
};
|
||||
|
||||
// SymbolTable is a hash-set based symbol-interning mechanism.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue