XXH_STATIC_ASSERT(sizeof(XXH32_state_t) >= sizeof(XXH_istate32_t)); // A compilation error here means XXH32_state_t is not large enough
return (XXH32_state_t*)XXH_malloc(sizeof(XXH32_state_t));
}
+
+void* XXH32_init (unsigned seed)
+{
+ XXH32_state_t *st = XXH32_createState();
+ XXH32_reset(st, seed);
+
+ return st;
+}
+
XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr)
{
XXH_free(statePtr);
h32 *= PRIME32_3;
h32 ^= h32 >> 16;
+ XXH32_freeState((XXH32_state_t *)state_in);
return h32;
}
h64 *= PRIME64_3;
h64 ^= h64 >> 32;
+ XXH64_freeState((XXH64_state_t *)state_in);
return h64;
}
If you prefer dynamic allocation, please refer to functions below.
*/
+/*
+ * !!!
+ * Rspamd specific: we use the legacy method to free state when digest is obtained
+ * !!!
+ */
+void * XXH32_init (unsigned seed);
XXH32_state_t* XXH32_createState(void);
XXH_errorcode XXH32_freeState(XXH32_state_t* statePtr);