From 0d558ca900f3fd5882ee9aed1bd45ae64c86a98e Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Sat, 14 Dec 2019 08:05:06 +0000 Subject: [PATCH] changed htb to use 'gem' instead of 'hawk' --- hawk/lib/hawk-htb.h | 18 +++++++++--------- hawk/lib/hawk.c | 15 +++++---------- hawk/lib/htb.c | 38 +++++++++++++++++++------------------- hawk/lib/std.c | 3 +-- 4 files changed, 34 insertions(+), 40 deletions(-) diff --git a/hawk/lib/hawk-htb.h b/hawk/lib/hawk-htb.h index 35bdde20..ac9555c9 100644 --- a/hawk/lib/hawk-htb.h +++ b/hawk/lib/hawk-htb.h @@ -242,12 +242,12 @@ typedef enum hawk_htb_style_kind_t hawk_htb_style_kind_t; */ struct hawk_htb_t { - hawk_t* hawk; + hawk_gem_t* gem; const hawk_htb_style_t* style; - hawk_uint8_t scale[2]; /**< length scale */ - hawk_uint8_t factor; /**< load factor in percentage */ + hawk_uint8_t scale[2]; /**< length scale */ + hawk_uint8_t factor; /**< load factor in percentage */ hawk_oow_t size; hawk_oow_t capa; @@ -325,7 +325,7 @@ HAWK_EXPORT const hawk_htb_style_t* hawk_get_htb_style ( * @return #hawk_htb_t pointer on success, #HAWK_NULL on failure. */ HAWK_EXPORT hawk_htb_t* hawk_htb_open ( - hawk_t* hawk, /**< awk object */ + hawk_gem_t* gem, hawk_oow_t xtnsize, /**< extension size in bytes */ hawk_oow_t capa, /**< initial capacity */ int factor, /**< load factor */ @@ -345,8 +345,8 @@ HAWK_EXPORT void hawk_htb_close ( * The hawk_htb_init() function initializes a hash table */ HAWK_EXPORT int hawk_htb_init ( - hawk_htb_t* htb, /**< hash table */ - hawk_t* hawk, /**< awk object */ + hawk_htb_t* htb, /**< hash table */ + hawk_gem_t* gem, hawk_oow_t capa, /**< initial capacity */ int factor, /**< load factor */ int kscale, /**< key scale */ @@ -563,10 +563,10 @@ HAWK_EXPORT hawk_htb_pair_t* hawk_htb_update ( */ HAWK_EXPORT hawk_htb_pair_t* hawk_htb_cbsert ( hawk_htb_t* htb, /**< hash table */ - void* kptr, /**< key pointer */ - hawk_oow_t klen, /**< key length */ + void* kptr, /**< key pointer */ + hawk_oow_t klen, /**< key length */ hawk_htb_cbserter_t cbserter, /**< callback function */ - void* ctx /**< callback context */ + void* ctx /**< callback context */ ); /** diff --git a/hawk/lib/hawk.c b/hawk/lib/hawk.c index 1264b297..19ee7dbf 100644 --- a/hawk/lib/hawk.c +++ b/hawk/lib/hawk.c @@ -195,16 +195,16 @@ int hawk_init (hawk_t* awk, hawk_mmgr_t* mmgr, hawk_cmgr_t* cmgr, const hawk_prm awk->tree.chain_size = 0; /* TODO: initial map size?? */ - awk->tree.funs = hawk_htb_open(awk, HAWK_SIZEOF(awk), 512, 70, HAWK_SIZEOF(hawk_ooch_t), 1); - awk->parse.funs = hawk_htb_open(awk, HAWK_SIZEOF(awk), 256, 70, HAWK_SIZEOF(hawk_ooch_t), 1); - awk->parse.named = hawk_htb_open(awk, HAWK_SIZEOF(awk), 256, 70, HAWK_SIZEOF(hawk_ooch_t), 1); + awk->tree.funs = hawk_htb_open(hawk_getgem(awk), HAWK_SIZEOF(awk), 512, 70, HAWK_SIZEOF(hawk_ooch_t), 1); + awk->parse.funs = hawk_htb_open(hawk_getgem(awk), HAWK_SIZEOF(awk), 256, 70, HAWK_SIZEOF(hawk_ooch_t), 1); + awk->parse.named = hawk_htb_open(hawk_getgem(awk), HAWK_SIZEOF(awk), 256, 70, HAWK_SIZEOF(hawk_ooch_t), 1); awk->parse.gbls = hawk_arr_open(awk, HAWK_SIZEOF(awk), 128); awk->parse.lcls = hawk_arr_open(awk, HAWK_SIZEOF(awk), 64); awk->parse.params = hawk_arr_open(awk, HAWK_SIZEOF(awk), 32); awk->fnc.sys = HAWK_NULL; - awk->fnc.user = hawk_htb_open(awk, HAWK_SIZEOF(awk), 512, 70, HAWK_SIZEOF(hawk_ooch_t), 1); + awk->fnc.user = hawk_htb_open(hawk_getgem(awk), HAWK_SIZEOF(awk), 512, 70, HAWK_SIZEOF(hawk_ooch_t), 1); awk->modtab = hawk_rbt_open(awk, 0, HAWK_SIZEOF(hawk_ooch_t), 1); if (awk->tree.funs == HAWK_NULL || @@ -246,12 +246,7 @@ int hawk_init (hawk_t* awk, hawk_mmgr_t* mmgr, hawk_cmgr_t* cmgr, const hawk_prm hawk_rbt_setstyle (awk->modtab, hawk_get_rbt_style(HAWK_RBT_STYLE_INLINE_COPIERS)); - if (hawk_initgbls(awk) <= -1) - { - hawk_seterrnum (awk, HAWK_ENOMEM, HAWK_NULL); - goto oops; - } - + if (hawk_initgbls(awk) <= -1) goto oops; return 0; oops: diff --git a/hawk/lib/htb.c b/hawk/lib/htb.c index a995ecae..e6e5ed44 100644 --- a/hawk/lib/htb.c +++ b/hawk/lib/htb.c @@ -61,7 +61,7 @@ HAWK_INLINE pair_t* hawk_htb_allocpair (hawk_htb_t* htb, void* kptr, hawk_oow_t if (kcop == HAWK_HTB_COPIER_INLINE) as += HAWK_ALIGN_POW2(KTOB(htb,klen), HAWK_SIZEOF_VOID_P); if (vcop == HAWK_HTB_COPIER_INLINE) as += VTOB(htb,vlen); - n = (pair_t*) hawk_allocmem(htb->hawk, as); + n = (pair_t*) hawk_gem_allocmem(htb->gem, as); if (n == HAWK_NULL) return HAWK_NULL; NEXT(n) = HAWK_NULL; @@ -83,7 +83,7 @@ HAWK_INLINE pair_t* hawk_htb_allocpair (hawk_htb_t* htb, void* kptr, hawk_oow_t KPTR(n) = kcop (htb, kptr, klen); if (KPTR(n) == HAWK_NULL) { - hawk_freemem (htb->hawk, n); + hawk_gem_freemem (htb->gem, n); return HAWK_NULL; } } @@ -109,7 +109,7 @@ HAWK_INLINE pair_t* hawk_htb_allocpair (hawk_htb_t* htb, void* kptr, hawk_oow_t { if (htb->style->freeer[HAWK_HTB_KEY] != HAWK_NULL) htb->style->freeer[HAWK_HTB_KEY] (htb, KPTR(n), KLEN(n)); - hawk_freemem (htb->hawk, n); + hawk_gem_freemem (htb->gem, n); return HAWK_NULL; } } @@ -123,7 +123,7 @@ HAWK_INLINE void hawk_htb_freepair (hawk_htb_t* htb, pair_t* pair) htb->style->freeer[HAWK_HTB_KEY] (htb, KPTR(pair), KLEN(pair)); if (htb->style->freeer[HAWK_HTB_VAL] != HAWK_NULL) htb->style->freeer[HAWK_HTB_VAL] (htb, VPTR(pair), VLEN(pair)); - hawk_freemem (htb->hawk, pair); + hawk_gem_freemem (htb->gem, pair); } static HAWK_INLINE pair_t* change_pair_val ( @@ -259,16 +259,16 @@ const style_t* hawk_get_htb_style (style_kind_t kind) return &style[kind]; } -hawk_htb_t* hawk_htb_open (hawk_t* hawk, hawk_oow_t xtnsize, hawk_oow_t capa, int factor, int kscale, int vscale) +hawk_htb_t* hawk_htb_open (hawk_gem_t* gem, hawk_oow_t xtnsize, hawk_oow_t capa, int factor, int kscale, int vscale) { hawk_htb_t* htb; - htb = (hawk_htb_t*)hawk_allocmem(hawk, HAWK_SIZEOF(hawk_htb_t) + xtnsize); + htb = (hawk_htb_t*)hawk_gem_allocmem(gem, HAWK_SIZEOF(hawk_htb_t) + xtnsize); if (!htb) return HAWK_NULL; - if (hawk_htb_init(htb, hawk, capa, factor, kscale, vscale) <= -1) + if (hawk_htb_init(htb, gem, capa, factor, kscale, vscale) <= -1) { - hawk_freemem (hawk, htb); + hawk_gem_freemem (gem, htb); return HAWK_NULL; } @@ -279,10 +279,10 @@ hawk_htb_t* hawk_htb_open (hawk_t* hawk, hawk_oow_t xtnsize, hawk_oow_t capa, in void hawk_htb_close (hawk_htb_t* htb) { hawk_htb_fini (htb); - hawk_freemem (htb->hawk, htb); + hawk_gem_freemem (htb->gem, htb); } -int hawk_htb_init (hawk_htb_t* htb, hawk_t* hawk, hawk_oow_t capa, int factor, int kscale, int vscale) +int hawk_htb_init (hawk_htb_t* htb, hawk_gem_t* gem, hawk_oow_t capa, int factor, int kscale, int vscale) { /* The initial capacity should be greater than 0. * Otherwise, it is adjusted to 1 in the release mode */ @@ -301,9 +301,9 @@ int hawk_htb_init (hawk_htb_t* htb, hawk_t* hawk, hawk_oow_t capa, int factor, i /* do not zero out the extension */ HAWK_MEMSET (htb, 0, HAWK_SIZEOF(*htb)); - htb->hawk = hawk; + htb->gem = gem; - htb->bucket = hawk_allocmem(hawk, capa * HAWK_SIZEOF(pair_t*)); + htb->bucket = hawk_gem_allocmem(gem, capa * HAWK_SIZEOF(pair_t*)); if (htb->bucket == HAWK_NULL) return -1; /*for (i = 0; i < capa; i++) htb->bucket[i] = HAWK_NULL;*/ @@ -325,7 +325,7 @@ int hawk_htb_init (hawk_htb_t* htb, hawk_t* hawk, hawk_oow_t capa, int factor, i void hawk_htb_fini (hawk_htb_t* htb) { hawk_htb_clear (htb); - hawk_freemem (htb->hawk, htb->bucket); + hawk_gem_freemem (htb->gem, htb->bucket); } const style_t* hawk_htb_getstyle (const hawk_htb_t* htb) @@ -335,7 +335,7 @@ const style_t* hawk_htb_getstyle (const hawk_htb_t* htb) void hawk_htb_setstyle (hawk_htb_t* htb, const style_t* style) { - HAWK_ASSERT (htb->hawk, style != HAWK_NULL); + HAWK_ASSERT (htb->gem, style != HAWK_NULL); htb->style = style; } @@ -393,7 +393,7 @@ static HAWK_INLINE int reorganize (hawk_htb_t* htb) new_capa = (htb->capa >= 65536)? (htb->capa + 65536): (htb->capa << 1); } - new_buck = (pair_t**)hawk_allocmem(htb->hawk, new_capa * HAWK_SIZEOF(pair_t*)); + new_buck = (pair_t**)hawk_gem_allocmem(htb->gem, new_capa * HAWK_SIZEOF(pair_t*)); if (new_buck == HAWK_NULL) { /* reorganization is disabled once it fails */ @@ -402,7 +402,7 @@ static HAWK_INLINE int reorganize (hawk_htb_t* htb) } /*for (i = 0; i < new_capa; i++) new_buck[i] = HAWK_NULL;*/ - HAWK_MEMSET (new_buck, 0, new_capa*HAWK_SIZEOF(pair_t*)); + HAWK_MEMSET (new_buck, 0, new_capa * HAWK_SIZEOF(pair_t*)); for (i = 0; i < htb->capa; i++) { @@ -421,7 +421,7 @@ static HAWK_INLINE int reorganize (hawk_htb_t* htb) } } - hawk_freemem (htb->hawk, htb->bucket); + hawk_gem_freemem (htb->gem, htb->bucket); htb->bucket = new_buck; htb->capa = new_capa; htb->threshold = htb->capa * htb->factor / 100; @@ -499,7 +499,7 @@ static HAWK_INLINE pair_t* insert (hawk_htb_t* htb, void* kptr, hawk_oow_t klen, } } - HAWK_ASSERT (htb->hawk, pair == HAWK_NULL); + HAWK_ASSERT (htb->gem, pair == HAWK_NULL); pair = hawk_htb_allocpair (htb, kptr, klen, vptr, vlen); if (pair == HAWK_NULL) return HAWK_NULL; /* error */ @@ -581,7 +581,7 @@ pair_t* hawk_htb_cbsert (hawk_htb_t* htb, void* kptr, hawk_oow_t klen, cbserter_ } } - HAWK_ASSERT (htb->hawk, pair == HAWK_NULL); + HAWK_ASSERT (htb->gem, pair == HAWK_NULL); pair = cbserter (htb, HAWK_NULL, kptr, klen, ctx); if (pair == HAWK_NULL) return HAWK_NULL; /* error */ diff --git a/hawk/lib/std.c b/hawk/lib/std.c index 58e809f9..cf56e105 100644 --- a/hawk/lib/std.c +++ b/hawk/lib/std.c @@ -2260,10 +2260,9 @@ static hawk_rtx_t* open_rtx_std ( if (rtx->awk->opt.trait & HAWK_RIO) { - if (hawk_htb_init(&rxtn->cmgrtab, awk, 256, 70, HAWK_SIZEOF(hawk_ooch_t), 1) <= -1) + if (hawk_htb_init(&rxtn->cmgrtab, hawk_getgem(awk), 256, 70, HAWK_SIZEOF(hawk_ooch_t), 1) <= -1) { hawk_rtx_close (rtx); - hawk_seterrnum (awk, HAWK_ENOMEM, HAWK_NULL); return HAWK_NULL; } hawk_htb_setstyle (&rxtn->cmgrtab, hawk_get_htb_style(HAWK_HTB_STYLE_INLINE_COPIERS));