added the fcb field to the awk value header

This commit is contained in:
hyung-hwan 2019-05-09 09:35:37 +00:00
parent 8682cc32e7
commit bd95bb3d2b
4 changed files with 21 additions and 8 deletions

View File

@ -157,15 +157,17 @@ typedef qse_floc_t qse_awk_loc_t;
/*
#define QSE_AWK_VAL_HDR \
unsigned int type: 4; \
unsigned int ref: 25; \
unsigned int ref: 24; \
unsigned int stat: 1; \
unsigned int nstr: 2
unsigned int nstr: 2; \
unsigned int fcb: 1
*/
#define QSE_AWK_VAL_HDR \
qse_uintptr_t v_type: 4; \
qse_uintptr_t ref: ((QSE_SIZEOF_UINTPTR_T * 8) - 7); \
qse_uintptr_t ref: ((QSE_SIZEOF_UINTPTR_T * 8) - 8); \
qse_uintptr_t stat: 1; \
qse_uintptr_t nstr: 2
qse_uintptr_t nstr: 2; \
qse_uintptr_t fcb: 1
/**
* The qse_awk_val_t type is an abstract value type. A value commonly contains:

View File

@ -34,8 +34,8 @@
#define CHUNKSIZE QSE_AWK_VAL_CHUNK_SIZE
static qse_awk_val_nil_t awk_nil = { QSE_AWK_VAL_NIL, 0, 1, 0 };
static qse_awk_val_str_t awk_zls = { QSE_AWK_VAL_STR, 0, 1, 0, { QSE_T(""), 0 } };
static qse_awk_val_nil_t awk_nil = { QSE_AWK_VAL_NIL, 0, 1, 0, 0 };
static qse_awk_val_str_t awk_zls = { QSE_AWK_VAL_STR, 0, 1, 0, 0, { QSE_T(""), 0 } };
qse_awk_val_t* qse_awk_val_nil = (qse_awk_val_t*)&awk_nil;
qse_awk_val_t* qse_awk_val_zls = (qse_awk_val_t*)&awk_zls;
@ -102,6 +102,7 @@ qse_awk_val_t* qse_awk_rtx_makeintval (qse_awk_rtx_t* rtx, qse_awk_int_t v)
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->i_val = v;
val->nde = QSE_NULL;
@ -152,6 +153,7 @@ qse_awk_val_t* qse_awk_rtx_makefltval (qse_awk_rtx_t* rtx, qse_awk_flt_t v)
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->val = v;
val->nde = QSE_NULL;
@ -191,6 +193,7 @@ init:
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->val.len = str->len;
val->val.ptr = (qse_char_t*)(val + 1);
if (str->ptr) qse_strncpy (val->val.ptr, str->ptr, str->len);
@ -332,6 +335,7 @@ init:
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->val.len = len1 + len2;
val->val.ptr = (qse_char_t*)(val + 1);
qse_strncpy (val->val.ptr, str1, len1);
@ -386,6 +390,7 @@ qse_awk_val_t* qse_awk_rtx_makembsval (qse_awk_rtx_t* rtx, const qse_mchar_t* pt
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->val.len = len;
val->val.ptr = (qse_mchar_t*)(val + 1);
if (ptr) QSE_MEMCPY (val->val.ptr, ptr, xsz);
@ -417,6 +422,7 @@ qse_awk_val_t* qse_awk_rtx_makerexval (qse_awk_rtx_t* rtx, const qse_cstr_t* str
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->str.len = str->len;
val->str.ptr = (qse_char_t*)(val + 1);
@ -484,6 +490,7 @@ qse_awk_val_t* qse_awk_rtx_makemapval (qse_awk_rtx_t* rtx)
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->map = qse_htb_open(run, 256, 70, free_mapval, same_mapval, run->awk->mmgr);
if (val->map == QSE_NULL)
{
@ -500,6 +507,7 @@ qse_awk_val_t* qse_awk_rtx_makemapval (qse_awk_rtx_t* rtx)
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->map = (qse_htb_t*)(val + 1);
if (qse_htb_init(val->map, rtx->awk->mmgr, 256, 70, QSE_SIZEOF(qse_char_t), 1) <= -1)
@ -660,6 +668,7 @@ qse_awk_val_t* qse_awk_rtx_makerefval (qse_awk_rtx_t* rtx, int id, qse_awk_val_t
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->id = id;
val->adr = adr;
@ -676,6 +685,7 @@ qse_awk_val_t* qse_awk_rtx_makefunval (qse_awk_rtx_t* rtx, const qse_awk_fun_t*
val->ref = 0;
val->stat = 0;
val->nstr = 0;
val->fcb = 0;
val->fun = (qse_awk_fun_t*)fun;
return (qse_awk_val_t*)val;

View File

@ -85,7 +85,8 @@ endif
if ENABLE_AWKMOD_SED
libqseawk_sed_la_SOURCES = mod-sed.c mod-sed.h
libqseawk_sed_la_CPPFLAGS = $(CPPFLAGS_COMMON)
libqseawk_sed_la_LDFLAGS = $(LDFLAGS_COMMON) -L../sed
## ../sed must be placed before LDFLAGS_COMMON because it should precede $(libdir)
libqseawk_sed_la_LDFLAGS = -L../sed $(LDFLAGS_COMMON)
libqseawk_sed_la_LIBADD = $(LIBADD_COMMON) -lqsesed
endif

View File

@ -477,7 +477,7 @@ CPPFLAGS_COMMON = \
@ENABLE_AWKMOD_MYSQL_TRUE@libqseawk_mysql_la_LIBADD = $(LIBADD_COMMON) -lmysqlclient_r
@ENABLE_AWKMOD_SED_TRUE@libqseawk_sed_la_SOURCES = mod-sed.c mod-sed.h
@ENABLE_AWKMOD_SED_TRUE@libqseawk_sed_la_CPPFLAGS = $(CPPFLAGS_COMMON)
@ENABLE_AWKMOD_SED_TRUE@libqseawk_sed_la_LDFLAGS = $(LDFLAGS_COMMON) -L../sed
@ENABLE_AWKMOD_SED_TRUE@libqseawk_sed_la_LDFLAGS = -L../sed $(LDFLAGS_COMMON)
@ENABLE_AWKMOD_SED_TRUE@libqseawk_sed_la_LIBADD = $(LIBADD_COMMON) -lqsesed
@ENABLE_AWKMOD_UCI_TRUE@libqseawk_uci_la_SOURCES = mod-uci.c mod-uci.h
@ENABLE_AWKMOD_UCI_TRUE@libqseawk_uci_la_CPPFLAGS = $(CPPFLAGS_COMMON)