Преглед на файлове

Kill a potential source of type punning BUS errors on Android, and besides that hack probably did not improve performance at all given the short lenghts of things compared with secureEq()

Adam Ierymenko преди 10 години
родител
ревизия
cf6f30963c
променени са 1 файла, в които са добавени 4 реда и са изтрити 14 реда
  1. 4 14
      node/Utils.hpp

+ 4 - 14
node/Utils.hpp

@@ -60,20 +60,10 @@ public:
 	static inline bool secureEq(const void *a,const void *b,unsigned int len)
 		throw()
 	{
-		const char *p1 = (const char *)a;
-		const char *p2 = (const char *)b;
-		uint64_t diff = 0;
-
-		while (len >= 8) {
-			diff |= (*((const uint64_t *)p1) ^ *((const uint64_t *)p2));
-			p1 += 8;
-			p2 += 8;
-			len -= 8;
-		}
-		while (len--)
-			diff |= (uint64_t)(*p1++ ^ *p2++);
-
-		return (diff == 0ULL);
+		char diff = 0;
+		for(unsigned int i=0;i<len;++i)
+			diff |= ( (reinterpret_cast<const char *>(a))[i] ^ (reinterpret_cast<const char *>(b))[i] );
+		return (diff == 0);
 	}
 
 	/**