Avoid some re-alloc
authorJakub Skoczen <jakub@indexdata.dk>
Tue, 7 May 2013 15:24:17 +0000 (17:24 +0200)
committerJakub Skoczen <jakub@indexdata.dk>
Tue, 7 May 2013 15:24:17 +0000 (17:24 +0200)
src/filter_http_rewrite.cpp

index 86667ca..249a757 100644 (file)
@@ -200,9 +200,8 @@ const std::string yf::HttpRewrite::search_replace(
                 = groups_bynum.find(i);
             if (it != groups_bynum.end()) 
             {   //it is
-                std::string name = it->second;
                 if (!what[i].str().empty())
-                    vars[name] = what[i];
+                    vars[it->second] = what[i];
             }
 
         }
@@ -210,12 +209,13 @@ const std::string yf::HttpRewrite::search_replace(
         std::string rvalue = sub_vars(uri_pat, vars);
         yaz_log(YLOG_LOG, "! Rewritten '%s' to '%s'", 
                 what.str(0).c_str(), rvalue.c_str());
-        out += std::string(start, what[0].first) + rvalue;
+        out.append(start, what[0].first);
+        out.append(rvalue);
         start = what[0].second; //move search forward
     }
     //if we had a match cat the last part
     if (start != txt.begin())
-        out += std::string(start, end);
+        out.append(start, end);
     return out;
 }