From 11d73e284c6ab3099919fdb0ed167679ee2bc3fc Mon Sep 17 00:00:00 2001 From: Victor Julien Date: Fri, 24 Nov 2023 19:38:16 +0100 Subject: [PATCH] ippair/storage: use flex array instead of calculated ptr --- src/ippair-storage.c | 10 +++++----- src/ippair.h | 6 +++--- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/src/ippair-storage.c b/src/ippair-storage.c index 0d1fd4af99..a0e65c75df 100644 --- a/src/ippair-storage.c +++ b/src/ippair-storage.c @@ -34,28 +34,28 @@ unsigned int IPPairStorageSize(void) void *IPPairGetStorageById(IPPair *h, IPPairStorageId id) { - return StorageGetById((Storage *)((void *)h + sizeof(IPPair)), STORAGE_IPPAIR, id.id); + return StorageGetById(h->storage, STORAGE_IPPAIR, id.id); } int IPPairSetStorageById(IPPair *h, IPPairStorageId id, void *ptr) { - return StorageSetById((Storage *)((void *)h + sizeof(IPPair)), STORAGE_IPPAIR, id.id, ptr); + return StorageSetById(h->storage, STORAGE_IPPAIR, id.id, ptr); } void *IPPairAllocStorageById(IPPair *h, IPPairStorageId id) { - return StorageAllocByIdPrealloc((Storage *)((void *)h + sizeof(IPPair)), STORAGE_IPPAIR, id.id); + return StorageAllocByIdPrealloc(h->storage, STORAGE_IPPAIR, id.id); } void IPPairFreeStorageById(IPPair *h, IPPairStorageId id) { - StorageFreeById((Storage *)((void *)h + sizeof(IPPair)), STORAGE_IPPAIR, id.id); + StorageFreeById(h->storage, STORAGE_IPPAIR, id.id); } void IPPairFreeStorage(IPPair *h) { if (IPPairStorageSize() > 0) - StorageFreeAll((Storage *)((void *)h + sizeof(IPPair)), STORAGE_IPPAIR); + StorageFreeAll(h->storage, STORAGE_IPPAIR); } IPPairStorageId IPPairStorageRegister(const char *name, const unsigned int size, diff --git a/src/ippair.h b/src/ippair.h index 82f1c094af..3eef45ad8f 100644 --- a/src/ippair.h +++ b/src/ippair.h @@ -65,9 +65,6 @@ typedef struct IPPair_ { /** use cnt, reference counter */ SC_ATOMIC_DECLARE(unsigned int, use_cnt); - /** storage api handle */ - Storage *storage; - /** hash pointers, protected by hash row mutex/spin */ struct IPPair_ *hnext; struct IPPair_ *hprev; @@ -75,6 +72,9 @@ typedef struct IPPair_ { /** list pointers, protected by ippair-queue mutex/spin */ struct IPPair_ *lnext; struct IPPair_ *lprev; + + /** storage api handle as a flex array member, so must stay last */ + Storage storage[]; } IPPair; typedef struct IPPairHashRow_ {