trimspace(key);
lastpos = thispos + 1; // strlen(">")
}
- const vector<xmltooling::TemplateEngine::TemplateParameters> forParams = parameters.getParameterCollection(key.c_str());
- unsigned int forend = forParams.size();
- if (forend==0) { // have to go through at least once to match end tags
+ const vector<TemplateParameters>& forParams = parameters.getParameterCollection(key.c_str());
+ vector<TemplateParameters>::size_type forend = forParams.size();
+ if (forend == 0) { // have to go through at least once to match end tags
cond = false;
forend = 1;
}
const char *savlastpos = lastpos;
- for (unsigned int i=0; i<forend; i++ ) {
- const TemplateParameters nullp;
- const TemplateParameters* tp = forParams.size()>0? static_cast<const TemplateParameters*>(&forParams[i]): &nullp;
+ for (vector<TemplateParameters>::size_type i=0; i<forend; ++i) {
+ static TemplateParameters nullp;
lastpos = savlastpos;
- process(cond, buf, lastpos, os, *tp, e);
+ process(cond, buf, lastpos, os, (forParams.size()>0 ? forParams[i] : nullp), e);
}
}
/*
- * Copyright 2001-2007 Internet2
+ * Copyright 2001-2009 Internet2
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* @param name name of parameter collection
* @return vector of parameters
*/
- virtual const std::vector<TemplateParameters> getParameterCollection(const char* name) const {
+ virtual const std::vector<TemplateParameters>& getParameterCollection(const char* name) const {
std::map<std::string,std::vector<TemplateParameters> >::const_iterator i=m_collectionMap.find(name);
return (i->second);
}