|  | @@ -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);
 |