From a37a59e1f128bdd5c2613a228594a17452ade2d7 Mon Sep 17 00:00:00 2001 From: Hongze Cheng Date: Fri, 12 Nov 2021 13:29:48 +0800 Subject: [PATCH] refact --- include/util/mallocator.h | 33 ++++++++-------------- source/dnode/vnode/tsdb/inc/tsdbMemTable.h | 7 ++++- 2 files changed, 17 insertions(+), 23 deletions(-) diff --git a/include/util/mallocator.h b/include/util/mallocator.h index 204f344cb7..6a10a26156 100644 --- a/include/util/mallocator.h +++ b/include/util/mallocator.h @@ -24,31 +24,20 @@ extern "C" { typedef struct SMemAllocator SMemAllocator; -#define MALLOCATOR_APIS \ - void *impl; \ - void *(*malloc)(SMemAllocator *, size_t size); \ - void *(*calloc)(SMemAllocator *, size_t nmemb, size_t size); \ - void *(*realloc)(SMemAllocator *, void *ptr, size_t size); \ - void (*free)(SMemAllocator *, void *ptr); \ - size_t (*usage)(SMemAllocator *); - struct SMemAllocator { - MALLOCATOR_APIS + void *impl; + void *(*malloc)(SMemAllocator *, uint64_t size); + void *(*calloc)(SMemAllocator *, uint64_t nmemb, uint64_t size); + void *(*realloc)(SMemAllocator *, void *ptr, uint64_t size); + void (*free)(SMemAllocator *, void *ptr); + uint64_t (*usage)(SMemAllocator *); }; -// heap allocator -SMemAllocator *tdCreateHeapAllocator(); -void tdDestroyHeapAllocator(SMemAllocator *pMemAllocator); - -// arena allocator -SMemAllocator *tdCreateArenaAllocator(size_t size); -void tdDestroyArenaAllocator(SMemAllocator *); - -#define mMalloc(pMemAllocator, size) (*(pMemAllocator->malloc))(pMemAllocator, size) -#define mCalloc(pMemAllocator, nmemb, size) (*(pMemAllocator->calloc))(pMemAllocator, nmemb, size) -#define mRealloc(pMemAllocator, ptr, size) (*(pMemAllocator->realloc))(pMemAllocator, ptr, size) -#define mFree(pMemAllocator, ptr) (*(pMemAllocator->free))(pMemAllocator, ptr) -#define mUsage(pMemAllocator) (*(pMemAllocator->usage))(pMemAllocator) +typedef struct { + void *impl; + SMemAllocator *(*create)(); + void (*destroy)(SMemAllocator *); +} SMemAllocatorFactory; #ifdef __cplusplus } diff --git a/source/dnode/vnode/tsdb/inc/tsdbMemTable.h b/source/dnode/vnode/tsdb/inc/tsdbMemTable.h index 15d868de9f..6be90ef53c 100644 --- a/source/dnode/vnode/tsdb/inc/tsdbMemTable.h +++ b/source/dnode/vnode/tsdb/inc/tsdbMemTable.h @@ -16,11 +16,16 @@ #ifndef _TD_TSDB_MEM_TABLE_H_ #define _TD_TSDB_MEM_TABLE_H_ +#include "tsdb.h" + #ifdef __cplusplus extern "C" { #endif -typedef struct SMemTable SMemTable; +typedef struct SMemTable { + /* TODO */ + SMemAllocator *pma; +} SMemTable; #ifdef __cplusplus }