aboutsummaryrefslogtreecommitdiffstats
path: root/src/compile.cpp
diff options
context:
space:
mode:
authorDavid Robillard <d@drobilla.net>2009-10-14 00:00:58 +0000
committerDavid Robillard <d@drobilla.net>2009-10-14 00:00:58 +0000
commit6b89f484b7e41cab4a528a855b23be33d97dc474 (patch)
tree94760633554e377a08ae4e7504e522d7eedb769b /src/compile.cpp
parent1c851be2be3b2358e03fa7b2d6944d8bd1b0416d (diff)
downloadresp-6b89f484b7e41cab4a528a855b23be33d97dc474.tar.gz
resp-6b89f484b7e41cab4a528a855b23be33d97dc474.tar.bz2
resp-6b89f484b7e41cab4a528a855b23be33d97dc474.zip
Remove unnecessary cenv.compile wrapper.
Remove special treatment of symbols for compilation. Make CEnv::vals a <ASymbol*, CValue> map rather than <AST*, CValue> (only used for symbols). git-svn-id: http://svn.drobilla.net/resp/tuplr@214 ad02d1e2-f140-0410-9f75-f8b11f17cedd
Diffstat (limited to 'src/compile.cpp')
-rw-r--r--src/compile.cpp6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/compile.cpp b/src/compile.cpp
index 2deb713..170c198 100644
--- a/src/compile.cpp
+++ b/src/compile.cpp
@@ -34,7 +34,7 @@ COMPILE_LITERAL(bool);
CVal
ASymbol::compile(CEnv& cenv)
{
- return cenv.vals.ref(this);
+ return *cenv.vals.ref(this);
}
CVal
@@ -81,7 +81,7 @@ ACall::compile(CEnv& cenv)
vector<CVal> args(size() - 1);
for (size_t i = 0; i < args.size(); ++i)
- args[i] = cenv.compile(at(i + 1));
+ args[i] = at(i + 1)->compile(cenv);
return cenv.engine()->compileCall(cenv, f, args);
}
@@ -91,7 +91,7 @@ ADef::compile(CEnv& cenv)
{
// Define stub first for recursion
cenv.def(sym(), at(2), cenv.type(at(2)), NULL);
- CVal val = cenv.compile(at(size() - 1));
+ CVal val = at(size() - 1)->compile(cenv);
cenv.vals.def(sym(), val);
return val;
}