diff --git a/src/libexpr/eval.cc b/src/libexpr/eval.cc index debdf4e42..11fda5dcb 100644 --- a/src/libexpr/eval.cc +++ b/src/libexpr/eval.cc @@ -1813,6 +1813,13 @@ ValueCache & Value::getEvalCache() ValueCache ValueCache::empty = ValueCache(nullptr); +void Value::setEvalCache(ValueCache & newCache) +{ + if (internalType == tAttrs) { + attrs->eval_cache = newCache; + } +} + string EvalState::forceString(Value & v, PathSet & context, const Pos & pos) { string s = forceString(v, pos); diff --git a/src/libexpr/value.hh b/src/libexpr/value.hh index 740a19f0c..53a2e2cdd 100644 --- a/src/libexpr/value.hh +++ b/src/libexpr/value.hh @@ -353,6 +353,7 @@ public: std::vector> getContext(); ValueCache & getEvalCache(); + void setEvalCache(ValueCache &); };