about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libexpr/eval.cc8
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: