aboutsummaryrefslogtreecommitdiff
path: root/src/libexpr/primops.cc
diff options
context:
space:
mode:
authorTuomas Tynkkynen <tuomas@tuxera.com>2017-03-04 15:24:06 +0200
committerTuomas Tynkkynen <tuomas@tuxera.com>2018-02-17 16:54:21 +0200
commit7e0360504d1a964ad5bd0da996045bc3868d0d7d (patch)
treec86de80ed19930296fc11ec09ae341965f31bcd7 /src/libexpr/primops.cc
parent0845cdf9443a6b304c1bcec304a462ae4995c744 (diff)
libexpr: Optimize prim_derivationStrict by using more symbol comparisons
Diffstat (limited to 'src/libexpr/primops.cc')
-rw-r--r--src/libexpr/primops.cc18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/libexpr/primops.cc b/src/libexpr/primops.cc
index 89e984d2e..317623b22 100644
--- a/src/libexpr/primops.cc
+++ b/src/libexpr/primops.cc
@@ -589,7 +589,7 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * *
/* The `args' attribute is special: it supplies the
command-line arguments to the builder. */
- if (key == "args") {
+ if (i->name == state.sArgs) {
state.forceList(*i->value, pos);
for (unsigned int n = 0; n < i->value->listSize(); ++n) {
string s = state.coerceToString(posDrvName, *i->value->listElems()[n], context, true);
@@ -614,13 +614,13 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * *
drv.platform = state.forceStringNoCtx(*i->value, posDrvName);
else if (i->name == state.sName)
drvName = state.forceStringNoCtx(*i->value, posDrvName);
- else if (key == "outputHash")
+ else if (i->name == state.sOutputHash)
outputHash = state.forceStringNoCtx(*i->value, posDrvName);
- else if (key == "outputHashAlgo")
+ else if (i->name == state.sOutputHashAlgo)
outputHashAlgo = state.forceStringNoCtx(*i->value, posDrvName);
- else if (key == "outputHashMode")
+ else if (i->name == state.sOutputHashMode)
handleHashMode(state.forceStringNoCtx(*i->value, posDrvName));
- else if (key == "outputs") {
+ else if (i->name == state.sOutputs) {
/* Require ‘outputs’ to be a list of strings. */
state.forceList(*i->value, posDrvName);
Strings ss;
@@ -638,10 +638,10 @@ static void prim_derivationStrict(EvalState & state, const Pos & pos, Value * *
drvName = s;
printMsg(lvlVomit, format("derivation name is '%1%'") % drvName);
}
- else if (key == "outputHash") outputHash = s;
- else if (key == "outputHashAlgo") outputHashAlgo = s;
- else if (key == "outputHashMode") handleHashMode(s);
- else if (key == "outputs")
+ else if (i->name == state.sOutputHash) outputHash = s;
+ else if (i->name == state.sOutputHashAlgo) outputHashAlgo = s;
+ else if (i->name == state.sOutputHashMode) handleHashMode(s);
+ else if (i->name == state.sOutputs)
handleOutputs(tokenizeString<Strings>(s));
}