aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/lib/utils/barrier.cpp5
-rw-r--r--src/lib/utils/parsing.cpp10
-rw-r--r--src/lib/utils/parsing.h6
-rw-r--r--src/lib/utils/semaphore.cpp15
4 files changed, 22 insertions, 14 deletions
diff --git a/src/lib/utils/barrier.cpp b/src/lib/utils/barrier.cpp
index 3c721d905..ed3878d18 100644
--- a/src/lib/utils/barrier.cpp
+++ b/src/lib/utils/barrier.cpp
@@ -20,9 +20,10 @@ void Barrier::wait(size_t delta)
void Barrier::sync()
{
std::unique_lock<mutex_type> lock(m_mutex);
- --m_value;
- if(m_value > 0)
+
+ if(m_value > 1)
{
+ --m_value;
const size_t current_syncs = m_syncs;
m_cond.wait(lock, [this, &current_syncs] { return m_syncs != current_syncs; });
}
diff --git a/src/lib/utils/parsing.cpp b/src/lib/utils/parsing.cpp
index e0173443f..9517cc673 100644
--- a/src/lib/utils/parsing.cpp
+++ b/src/lib/utils/parsing.cpp
@@ -13,7 +13,6 @@
#include <botan/loadstor.h>
#include <limits>
#include <set>
-#include <algorithm>
namespace Botan {
@@ -346,7 +345,14 @@ bool host_wildcard_match(const std::string& issued, const std::string& host)
return true;
}
- if(std::count(issued.begin(), issued.end(), '*') > 1)
+ size_t stars = 0;
+ for(char c : issued)
+ {
+ if(c == '*')
+ stars += 1;
+ }
+
+ if(stars > 1)
{
return false;
}
diff --git a/src/lib/utils/parsing.h b/src/lib/utils/parsing.h
index dbf5d426a..1cba23bc3 100644
--- a/src/lib/utils/parsing.h
+++ b/src/lib/utils/parsing.h
@@ -48,7 +48,9 @@ split_on_pred(const std::string& str,
/**
* Erase characters from a string
*/
-BOTAN_PUBLIC_API(2,0) std::string erase_chars(const std::string& str, const std::set<char>& chars);
+BOTAN_PUBLIC_API(2,0)
+BOTAN_DEPRECATED("Unused")
+std::string erase_chars(const std::string& str, const std::set<char>& chars);
/**
* Replace a character in a string
@@ -58,6 +60,7 @@ BOTAN_PUBLIC_API(2,0) std::string erase_chars(const std::string& str, const std:
* @return str with all instances of from_char replaced by to_char
*/
BOTAN_PUBLIC_API(2,0)
+BOTAN_DEPRECATED("Unused")
std::string replace_char(const std::string& str,
char from_char,
char to_char);
@@ -70,6 +73,7 @@ std::string replace_char(const std::string& str,
* @return str with all instances of from_chars replaced by to_char
*/
BOTAN_PUBLIC_API(2,0)
+BOTAN_DEPRECATED("Unused")
std::string replace_chars(const std::string& str,
const std::set<char>& from_chars,
char to_char);
diff --git a/src/lib/utils/semaphore.cpp b/src/lib/utils/semaphore.cpp
index 62c31d3e3..e990ded41 100644
--- a/src/lib/utils/semaphore.cpp
+++ b/src/lib/utils/semaphore.cpp
@@ -19,9 +19,7 @@ void Semaphore::release(size_t n)
{
lock_guard_type<mutex_type> lock(m_mutex);
- ++m_value;
-
- if(m_value <= 0)
+ if(m_value++ < 0)
{
++m_wakeups;
m_cond.notify_one();
@@ -32,12 +30,11 @@ void Semaphore::release(size_t n)
void Semaphore::acquire()
{
std::unique_lock<mutex_type> lock(m_mutex);
- --m_value;
- if(m_value < 0)
- {
- m_cond.wait(lock, [this] { return m_wakeups > 0; });
- --m_wakeups;
- }
+ if(m_value-- <= 0)
+ {
+ m_cond.wait(lock, [this] { return m_wakeups > 0; });
+ --m_wakeups;
+ }
}
}