diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libexpr/eval.cc | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index 02f5e3dc8d53..7434aa842242 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -918,8 +918,14 @@ bool EvalState::eqValues(Value & v1, Value & v2) forceValue(v1); forceValue(v2); + /* !!! Hack to support some old broken code that relies on pointer + equality tests between attribute sets. (Specifically, + builderDefs calls uniqList on a list of attribute sets.) Will + remove this eventually. */ + if (&v1 == &v2) return true; + if (v1.type != v2.type) return false; - + switch (v1.type) { case tInt: |