Commit de87724a7e5dfb23193f8adb897164c9c31575c4

Authored by Wiebe Cazemier
1 parent d3072e9c

Optimize topicsMatch() a bit

Showing 1 changed file with 4 additions and 3 deletions
utils.cpp
@@ -57,7 +57,8 @@ std::list<std::string> split(const std::string &input, const char sep, size_t ma @@ -57,7 +57,8 @@ std::list<std::string> split(const std::string &input, const char sep, size_t ma
57 return list; 57 return list;
58 } 58 }
59 59
60 - 60 +thread_local std::vector<std::string> subscribeParts;
  61 +thread_local std::vector<std::string> publishParts;
61 bool topicsMatch(const std::string &subscribeTopic, const std::string &publishTopic) 62 bool topicsMatch(const std::string &subscribeTopic, const std::string &publishTopic)
62 { 63 {
63 if (subscribeTopic.find("+") == std::string::npos && subscribeTopic.find("#") == std::string::npos) 64 if (subscribeTopic.find("+") == std::string::npos && subscribeTopic.find("#") == std::string::npos)
@@ -66,8 +67,8 @@ bool topicsMatch(const std::string &amp;subscribeTopic, const std::string &amp;publishTo @@ -66,8 +67,8 @@ bool topicsMatch(const std::string &amp;subscribeTopic, const std::string &amp;publishTo
66 if (!subscribeTopic.empty() && !publishTopic.empty() && publishTopic[0] == '$' && subscribeTopic[0] != '$') 67 if (!subscribeTopic.empty() && !publishTopic.empty() && publishTopic[0] == '$' && subscribeTopic[0] != '$')
67 return false; 68 return false;
68 69
69 - std::vector<std::string> subscribeParts;  
70 - std::vector<std::string> publishParts; 70 + subscribeParts.clear();
  71 + publishParts.clear();
71 72
72 #ifdef __SSE4_2__ 73 #ifdef __SSE4_2__
73 simdUtils.splitTopic(subscribeTopic, subscribeParts); 74 simdUtils.splitTopic(subscribeTopic, subscribeParts);