From b4dba561084b7ce60a8b1cfdb4e3b9de87de8d35 Mon Sep 17 00:00:00 2001 From: David Robillard Date: Sun, 22 Aug 2010 19:16:28 +0000 Subject: Simplify Engine::startFunction. git-svn-id: http://svn.drobilla.net/resp/resp@267 ad02d1e2-f140-0410-9f75-f8b11f17cedd --- src/c.cpp | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) (limited to 'src/c.cpp') diff --git a/src/c.cpp b/src/c.cpp index 66ab971..77c5fbe 100644 --- a/src/c.cpp +++ b/src/c.cpp @@ -101,8 +101,7 @@ struct CEngine : public Engine { } CFunc startFunction(CEnv& cenv, - const std::string& name, const AType* retT, const ATuple& argsT, - const vector argNames) + const std::string& name, const ATuple* args, const AType* retT, const ATuple& argsT) { vector cprot; FOREACH(ATuple::const_iterator, i, argsT) { @@ -119,12 +118,12 @@ struct CEngine : public Engine { f->returnType = *llType(retT); f->name = name; f->text += f->returnType + "\n" + f->name + "("; - ATuple::const_iterator ai = argsT.begin(); - vector::const_iterator ni = argNames.begin(); + ATuple::const_iterator ai = argsT.begin(); + ATuple::const_iterator ni = args->begin(); for (; ai != argsT.end(); ++ai, ++ni) { if (ai != argsT.begin()) f->text += ", "; - f->text += *llType((*ai)->as()) + " " + *ni; + f->text += *llType((*ai)->as()) + " " + (*ni)->as()->cppstr; } f->text += ")\n{\n"; @@ -216,13 +215,9 @@ CEngine::compileFunction(CEnv& cenv, const AFn* fn, const AType* type) const AType* retT = type->last()->as(); Subst argsSubst = cenv.tenv.buildSubst(type, *argsT); - vector argNames; - for (ATuple::const_iterator i = fn->prot()->begin(); i != fn->prot()->end(); ++i) - argNames.push_back((*i)->str()); - // Write function declaration const string name = (fn->name == "") ? cenv.penv.gensymstr("_fn") : fn->name; - Function* f = llFunc(cenv.engine()->startFunction(cenv, name, retT, *argsT, argNames)); + Function* f = llFunc(cenv.engine()->startFunction(cenv, name, fn->prot(), retT, *argsT)); cenv.push(); Subst oldSubst = cenv.tsubst; -- cgit v1.2.1