diff options
Diffstat (limited to 'controller/JSONDB.hpp')
-rw-r--r-- | controller/JSONDB.hpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/controller/JSONDB.hpp b/controller/JSONDB.hpp index e33cd768..61735655 100644 --- a/controller/JSONDB.hpp +++ b/controller/JSONDB.hpp @@ -19,6 +19,9 @@ #ifndef ZT_JSONDB_HPP #define ZT_JSONDB_HPP +#include <stdlib.h> +#include <string.h> + #include <string> #include <map> #include <stdexcept> @@ -75,7 +78,7 @@ public: inline void filter(const std::string &prefix,unsigned long maxSinceCheck,F func) { for(std::map<std::string,_E>::iterator i(_db.lower_bound(prefix));i!=_db.end();) { - if (i->first.substr(0,prefix.length()) == prefix) { + if ((i->first.length() >= prefix.length())&&(!memcmp(i->first.data(),prefix.data(),prefix.length()))) { if (!func(i->first,get(i->second.obj,maxSinceCheck))) { std::map<std::string,_E>::iterator i2(i); ++i2; this->erase(i->first); |