From 6f39425946989e21263a9dbb51988305ec7aa07e Mon Sep 17 00:00:00 2001 From: "Roger A. Light" Date: Thu, 22 Dec 2022 17:44:41 +0000 Subject: [PATCH] Only calculate hash value once. --- src/database.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/database.c b/src/database.c index 8ba081a2..f1f4925a 100644 --- a/src/database.c +++ b/src/database.c @@ -248,10 +248,12 @@ int db__close(void) int db__msg_store_add(struct mosquitto__base_msg *base_msg) { struct mosquitto__base_msg *found; + unsigned hashv; - HASH_FIND(hh, db.msg_store, &base_msg->msg.store_id, sizeof(base_msg->msg.store_id), found); + HASH_VALUE(&base_msg->msg.store_id, sizeof(base_msg->msg.store_id), hashv); + HASH_FIND_BYHASHVALUE(hh, db.msg_store, &base_msg->msg.store_id, sizeof(base_msg->msg.store_id), hashv, found); if(found == NULL){ - HASH_ADD_KEYPTR(hh, db.msg_store, &base_msg->msg.store_id, sizeof(base_msg->msg.store_id), base_msg); + HASH_ADD_KEYPTR_BYHASHVALUE(hh, db.msg_store, &base_msg->msg.store_id, sizeof(base_msg->msg.store_id), hashv, base_msg); return MOSQ_ERR_SUCCESS; }else{ return MOSQ_ERR_ALREADY_EXISTS;