about summary refs log tree commit diff
path: root/third_party/nix/src/libexpr/value-to-json.cc
diff options
context:
space:
mode:
authorVincent Ambo <tazjin@google.com>2020-05-22T00·58+0100
committerVincent Ambo <tazjin@google.com>2020-05-22T00·59+0100
commit986a8f6b75ffa51682cbe730c5c2907296082cd4 (patch)
tree32c266920223bbfbf0beb49689dc05cb8eb1f2b7 /third_party/nix/src/libexpr/value-to-json.cc
parent42205f27fc820ddc64616d55c04e2ffde1948043 (diff)
fix(3p/nix): Update for usage of new attribute set API r/802
The new attribute set API uses the iterators of the btree_map
directly. This requires changes in various files because the internals
of libexpr are very entangled.

This code runs and compiles, but there is a bug causing empty
attribute sets to be assigned incorrectly.
Diffstat (limited to 'third_party/nix/src/libexpr/value-to-json.cc')
-rw-r--r--third_party/nix/src/libexpr/value-to-json.cc6
1 files changed, 3 insertions, 3 deletions
diff --git a/third_party/nix/src/libexpr/value-to-json.cc b/third_party/nix/src/libexpr/value-to-json.cc
index 52ab44083b91..0b641a41b5ac 100644
--- a/third_party/nix/src/libexpr/value-to-json.cc
+++ b/third_party/nix/src/libexpr/value-to-json.cc
@@ -51,15 +51,15 @@ void printValueAsJSON(EvalState& state, bool strict, Value& v,
         auto obj(out.object());
         StringSet names;
         for (auto& j : *v.attrs) {
-          names.insert(j.name);
+          names.insert(j.second.name);
         }
         for (auto& j : names) {
-          Attr& a(*v.attrs->find(state.symbols.Create(j)));
+          auto [_, a] = *v.attrs->find(state.symbols.Create(j));
           auto placeholder(obj.placeholder(j));
           printValueAsJSON(state, strict, *a.value, placeholder, context);
         }
       } else {
-        printValueAsJSON(state, strict, *i->value, out, context);
+        printValueAsJSON(state, strict, *i->second.value, out, context);
       }
       break;
     }