Author: aconway
Date: Tue Dec  4 11:33:34 2007
New Revision: 601051

URL: http://svn.apache.org/viewvc?rev=601051&view=rev
Log:

Patch from Ted Ross <[EMAIL PROTECTED]>

I've been doing some work in TopicExchange and noticed an opportunity
for optimization of the route method.  The current code does a heap
allocation per binding, per message.  The optimization removes the
per-binding allocation.

Modified:
    incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp

Modified: incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp
URL: 
http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp?rev=601051&r1=601050&r2=601051&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp (original)
+++ incubator/qpid/trunk/qpid/cpp/src/qpid/broker/TopicExchange.cpp Tue Dec  4 
11:33:34 2007
@@ -152,8 +152,9 @@
 
 void TopicExchange::route(Deliverable& msg, const string& routingKey, const 
FieldTable* /*args*/){
     RWlock::ScopedRlock l(lock);
+    Tokens   tokens(routingKey);
     for (BindingMap::iterator i = bindings.begin(); i != bindings.end(); ++i) {
-        if (i->first.match(routingKey)) {
+        if (i->first.match(tokens)) {
             Queue::vector& qv(i->second);
             for(Queue::vector::iterator j = qv.begin(); j != qv.end(); j++){
                 msg.deliverTo(*j);


Reply via email to