* added qse_cptl_t/qse_xptl_t

* deleted word substitution functions from awk
This commit is contained in:
2011-05-24 10:52:37 +00:00
parent 40711d3320
commit 7e6a4dc0d5
20 changed files with 289 additions and 550 deletions

View File

@ -1,5 +1,5 @@
/*
* $Id: dll.c 441 2011-04-22 14:28:43Z hyunghwan.chung $
* $Id: dll.c 474 2011-05-23 16:52:37Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -24,6 +24,8 @@
QSE_IMPLEMENT_COMMON_FUNCTIONS (dll)
#define TOB(dll,len) ((len)*(dll)->scale)
#define DPTR(node) QSE_DLL_DPTR(node)
#define DLEN(node) QSE_DLL_DLEN(node)
static int default_comper (
qse_dll_t* dll,
@ -171,7 +173,7 @@ static qse_dll_node_t* alloc_node (qse_dll_t* dll, void* dptr, qse_size_t dlen)
{
n = QSE_MMGR_ALLOC (dll->mmgr, QSE_SIZEOF(qse_dll_node_t));
if (n == QSE_NULL) return QSE_NULL;
n->dptr = dptr;
DPTR(n) = dptr;
}
else if (dll->copier == QSE_DLL_COPIER_INLINE)
{
@ -180,21 +182,21 @@ static qse_dll_node_t* alloc_node (qse_dll_t* dll, void* dptr, qse_size_t dlen)
if (n == QSE_NULL) return QSE_NULL;
QSE_MEMCPY (n + 1, dptr, TOB(dll,dlen));
n->dptr = n + 1;
DPTR(n) = n + 1;
}
else
{
n = QSE_MMGR_ALLOC (dll->mmgr, QSE_SIZEOF(qse_dll_node_t));
if (n == QSE_NULL) return QSE_NULL;
n->dptr = dll->copier (dll, dptr, dlen);
if (n->dptr == QSE_NULL)
DPTR(n) = dll->copier (dll, dptr, dlen);
if (DPTR(n) == QSE_NULL)
{
QSE_MMGR_FREE (dll->mmgr, n);
return QSE_NULL;
}
}
n->dlen = dlen;
DLEN(n) = dlen;
return n;
}
@ -203,7 +205,7 @@ static QSE_INLINE void free_node (qse_dll_t* dll, qse_dll_node_t* node)
if (dll->freeer != QSE_NULL)
{
/* free the actual data */
dll->freeer (dll, node->dptr, node->dlen);
dll->freeer (dll, DPTR(node), DLEN(node));
}
/* free the node */
@ -217,7 +219,7 @@ qse_dll_node_t* qse_dll_search (
while (QSE_DLL_ISMEMBER(dll,pos))
{
if (dll->comper (dll, pos->dptr, pos->dlen, dptr, dlen) == 0)
if (dll->comper (dll, DPTR(pos), DLEN(pos), dptr, dlen) == 0)
{
return pos;
}
@ -235,7 +237,7 @@ qse_dll_node_t* qse_dll_rsearch (
while (QSE_DLL_ISMEMBER(dll,pos))
{
if (dll->comper (dll, pos->dptr, pos->dlen, dptr, dlen) == 0)
if (dll->comper (dll, DPTR(pos), DLEN(pos), dptr, dlen) == 0)
{
return pos;
}

View File

@ -1,5 +1,5 @@
/*
* $Id: htb.c 441 2011-04-22 14:28:43Z hyunghwan.chung $
* $Id: htb.c 474 2011-05-23 16:52:37Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -256,7 +256,8 @@ const mancbs_t* qse_htb_mancbs (mancbs_kind_t kind)
};
htb_t* qse_htb_open (
mmgr_t* mmgr, size_t xtnsize, size_t capa, int factor, int kscale, int vscale)
mmgr_t* mmgr, size_t xtnsize, size_t capa,
int factor, int kscale, int vscale)
{
htb_t* htb;
@ -289,7 +290,8 @@ void qse_htb_close (htb_t* htb)
}
htb_t* qse_htb_init (
htb_t* htb, mmgr_t* mmgr, size_t capa, int factor, int kscale, int vscale)
htb_t* htb, mmgr_t* mmgr, size_t capa,
int factor, int kscale, int vscale)
{
if (mmgr == QSE_NULL) mmgr = QSE_MMGR_GETDFL();

View File

@ -1,5 +1,5 @@
/*
* $Id: lda.c 441 2011-04-22 14:28:43Z hyunghwan.chung $
* $Id: lda.c 474 2011-05-23 16:52:37Z hyunghwan.chung $
*
Copyright 2006-2011 Chung, Hyung-Hwan.
This file is part of QSE.
@ -24,7 +24,7 @@
QSE_IMPLEMENT_COMMON_FUNCTIONS (lda)
#define lda_t qse_lda_t
#define node_t qse_lda_node_t
#define slot_t qse_lda_slot_t
#define copier_t qse_lda_copier_t
#define freeer_t qse_lda_freeer_t
#define comper_t qse_lda_comper_t
@ -36,8 +36,8 @@ QSE_IMPLEMENT_COMMON_FUNCTIONS (lda)
#define size_t qse_size_t
#define TOB(lda,len) ((len)*(lda)->scale)
#define DPTR(node) ((node)->dptr)
#define DLEN(node) ((node)->dlen)
#define DPTR(node) ((node)->val.ptr)
#define DLEN(node) ((node)->val.len)
static int default_comparator (lda_t* lda,
const void* dptr1, size_t dlen1,
@ -58,20 +58,20 @@ static int default_comparator (lda_t* lda,
return n;
}
static QSE_INLINE node_t* alloc_node (lda_t* lda, void* dptr, size_t dlen)
static QSE_INLINE slot_t* alloc_node (lda_t* lda, void* dptr, size_t dlen)
{
node_t* n;
slot_t* n;
if (lda->copier == QSE_LDA_COPIER_SIMPLE)
{
n = QSE_MMGR_ALLOC (lda->mmgr, QSE_SIZEOF(node_t));
n = QSE_MMGR_ALLOC (lda->mmgr, QSE_SIZEOF(slot_t));
if (n == QSE_NULL) return QSE_NULL;
DPTR(n) = dptr;
}
else if (lda->copier == QSE_LDA_COPIER_INLINE)
{
n = QSE_MMGR_ALLOC (lda->mmgr,
QSE_SIZEOF(node_t) + TOB(lda,dlen));
QSE_SIZEOF(slot_t) + TOB(lda,dlen));
if (n == QSE_NULL) return QSE_NULL;
QSE_MEMCPY (n + 1, dptr, TOB(lda,dlen));
@ -79,7 +79,7 @@ static QSE_INLINE node_t* alloc_node (lda_t* lda, void* dptr, size_t dlen)
}
else
{
n = QSE_MMGR_ALLOC (lda->mmgr, QSE_SIZEOF(node_t));
n = QSE_MMGR_ALLOC (lda->mmgr, QSE_SIZEOF(slot_t));
if (n == QSE_NULL) return QSE_NULL;
DPTR(n) = lda->copier (lda, dptr, dlen);
if (DPTR(n) == QSE_NULL)
@ -252,14 +252,14 @@ lda_t* qse_lda_setcapa (lda_t* lda, size_t capa)
{
if (lda->mmgr->realloc != QSE_NULL && lda->node != QSE_NULL)
{
tmp = (node_t**) QSE_MMGR_REALLOC (
tmp = (slot_t**) QSE_MMGR_REALLOC (
lda->mmgr, lda->node,
QSE_SIZEOF(*lda->node)*capa);
if (tmp == QSE_NULL) return QSE_NULL;
}
else
{
tmp = (node_t**) QSE_MMGR_ALLOC (
tmp = (slot_t**) QSE_MMGR_ALLOC (
lda->mmgr, QSE_SIZEOF(*lda->node)*capa);
if (tmp == QSE_NULL) return QSE_NULL;
@ -336,7 +336,7 @@ size_t qse_lda_upsert (lda_t* lda, size_t pos, void* dptr, size_t dlen)
size_t qse_lda_insert (lda_t* lda, size_t pos, void* dptr, size_t dlen)
{
size_t i;
node_t* node;
slot_t* node;
/* allocate the node first */
node = alloc_node (lda, dptr, dlen);
@ -413,7 +413,7 @@ size_t qse_lda_insert (lda_t* lda, size_t pos, void* dptr, size_t dlen)
size_t qse_lda_update (lda_t* lda, size_t pos, void* dptr, size_t dlen)
{
node_t* c;
slot_t* c;
if (pos >= lda->size) return QSE_LDA_NIL;
@ -434,7 +434,7 @@ size_t qse_lda_update (lda_t* lda, size_t pos, void* dptr, size_t dlen)
else
{
/* updated to different data */
node_t* node = alloc_node (lda, dptr, dlen);
slot_t* node = alloc_node (lda, dptr, dlen);
if (node == QSE_NULL) return QSE_LDA_NIL;
if (lda->freeer != QSE_NULL)
@ -459,7 +459,7 @@ size_t qse_lda_delete (lda_t* lda, size_t index, size_t count)
for (i = index; i < index + count; i++)
{
node_t* c = lda->node[i];
slot_t* c = lda->node[i];
if (c != QSE_NULL)
{
@ -492,7 +492,7 @@ size_t qse_lda_uplete (lda_t* lda, size_t index, size_t count)
for (i = index; i < index + count; i++)
{
node_t* c = lda->node[i];
slot_t* c = lda->node[i];
if (c != QSE_NULL)
{
@ -513,7 +513,7 @@ void qse_lda_clear (lda_t* lda)
for (i = 0; i < lda->size; i++)
{
node_t* c = lda->node[i];
slot_t* c = lda->node[i];
if (c != QSE_NULL)
{
if (lda->freeer)
@ -618,7 +618,7 @@ size_t qse_lda_pushheap (lda_t* lda, void* dptr, size_t dlen)
while (cur != 0)
{
node_t* tmp;
slot_t* tmp;
/* compare with the parent */
par = HEAP_PARENT(cur);
@ -641,7 +641,7 @@ size_t qse_lda_pushheap (lda_t* lda, void* dptr, size_t dlen)
void qse_lda_popheap (lda_t* lda)
{
size_t cur, child;
node_t* tmp;
slot_t* tmp;
QSE_ASSERT (lda->size > 0);

View File

@ -282,7 +282,7 @@ pair_t* qse_rbt_search (rbt_t* rbt, const void* kptr, size_t klen)
while (!IS_NIL(rbt,pair))
{
int n = rbt->mancbs->comper (rbt, kptr, klen, pair->kptr, pair->klen);
int n = rbt->mancbs->comper (rbt, kptr, klen, KPTR(pair), KLEN(pair));
if (n == 0) return pair;
if (n > 0) pair = pair->right;
@ -516,7 +516,7 @@ static pair_t* insert (
while (!IS_NIL(rbt,xcur))
{
int n = rbt->mancbs->comper (rbt, kptr, klen, xcur->kptr, xcur->klen);
int n = rbt->mancbs->comper (rbt, kptr, klen, KPTR(xcur), KLEN(xcur));
if (n == 0)
{
switch (opt)
@ -555,7 +555,7 @@ static pair_t* insert (
else
{
/* perform normal binary insert */
int n = rbt->mancbs->comper (rbt, kptr, klen, xpar->kptr, xpar->klen);
int n = rbt->mancbs->comper (rbt, kptr, klen, KPTR(xpar), KLEN(xpar));
if (n > 0)
{
QSE_ASSERT (xpar->right == &rbt->nil);
@ -609,7 +609,7 @@ pair_t* qse_rbt_cbsert (
while (!IS_NIL(rbt,xcur))
{
int n = rbt->mancbs->comper (rbt, kptr, klen, xcur->kptr, xcur->klen);
int n = rbt->mancbs->comper (rbt, kptr, klen, KPTR(xcur), KLEN(xcur));
if (n == 0)
{
/* back up the contents of the current pair
@ -674,7 +674,7 @@ pair_t* qse_rbt_cbsert (
else
{
/* perform normal binary insert */
int n = rbt->mancbs->comper (rbt, kptr, klen, xpar->kptr, xpar->klen);
int n = rbt->mancbs->comper (rbt, kptr, klen, KPTR(xpar), KLEN(xpar));
if (n > 0)
{
QSE_ASSERT (xpar->right == &rbt->nil);