Switch to reference parameters as appropriate.
[shibboleth/cpp-xmltooling.git] / xmltooling / util / TemplateEngine.cpp
index 22881e3..2333c8c 100644 (file)
@@ -206,20 +206,19 @@ void TemplateEngine::process(
                 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);
             }
 
         }