about summary refs log tree commit diff
path: root/third_party/nix/src/libexpr/attr-set.hh
diff options
context:
space:
mode:
authorGriffin Smith <grfn@gws.fyi>2020-07-12T21·29-0400
committerglittershark <grfn@gws.fyi>2020-07-13T23·50+0000
commitd5597b4784e04020b4ef4968a6887d4e22cc3edd (patch)
tree5c1a4760e6f1fe78d43b287d361c61db0060217b /third_party/nix/src/libexpr/attr-set.hh
parentd5505fcff9dc9ad76b4cb822cc642fdd0e238553 (diff)
feat(3p/nix): Statically pass bindings capacity where possible r/1285
To aid in making the decision of where to (currently just statically)
use a vector or btree as the backing implementation, add an extra
constructor argument to Bindings::NewGC for a capacity, and use
a (currently hardcoded at 32, for no good reason other than it felt like
a reasonable number) pivot to switch between our possible backing
implementations. Then, update all the call sites where it feels
reasonable that we know the capacity statically to *pass* that capacity
to the constructor.

Paired-With: Luke Granger-Brown <git@lukegb.com>
Paired-With: Vincent Ambo <mail@tazj.in>
Paired-With: Perry Lorier <isomer@tvl.fyi>
Change-Id: I1858c161301a1cd0e83aeeb9a58839378869e71d
Reviewed-on: https://cl.tvl.fyi/c/depot/+/1124
Tested-by: BuildkiteCI
Reviewed-by: lukegb <lukegb@tvl.fyi>
Reviewed-by: isomer <isomer@tvl.fyi>
Diffstat (limited to 'third_party/nix/src/libexpr/attr-set.hh')
-rw-r--r--third_party/nix/src/libexpr/attr-set.hh6
1 files changed, 1 insertions, 5 deletions
diff --git a/third_party/nix/src/libexpr/attr-set.hh b/third_party/nix/src/libexpr/attr-set.hh
index 3834eac419..55641a0203 100644
--- a/third_party/nix/src/libexpr/attr-set.hh
+++ b/third_party/nix/src/libexpr/attr-set.hh
@@ -67,13 +67,9 @@ class Bindings {
  public:
   typedef BindingsIterator iterator;
 
-  // Allocate a new attribute set that is visible to the garbage
-  // collector.
-  static Bindings* NewGC();
-
   // Allocate a new attribute set with a static capacity that is visible to the
   // garbage collector.
-  // static Bindings* NewGC(size_t capacity);
+  static Bindings* NewGC(size_t capacity = 0);
 
   // Return the number of contained elements.
   virtual size_t size() = 0;