From 35a24a56d1944d6ae87da06a1fb09478ef7d07ec Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Mon, 24 Jun 2019 08:53:49 +0000 Subject: [PATCH] added the _instsize field to qse_awk_t and qse_awk_rtx_t to get rid of qse_awk_getxtnstd() and qse_awk_rtx_getxtnstd() --- qse/doc/page/awk-embed.md | 4 +- qse/include/qse/awk/Awk.hpp | 2 +- qse/include/qse/awk/awk.h | 52 ++++++------- qse/include/qse/awk/stdawk.h | 9 --- qse/lib/awk/Awk.cpp | 44 ++++++----- qse/lib/awk/awk-prv.h | 10 +-- qse/lib/awk/awk.c | 16 ++-- qse/lib/awk/fnc.c | 10 +-- qse/lib/awk/misc.c | 12 +-- qse/lib/awk/parse.c | 2 +- qse/lib/awk/run.c | 31 +++----- qse/lib/awk/std.c | 144 +++++++++++++++++------------------ qse/lib/awk/val.c | 40 +++++----- qse/samples/awk/awk03.c | 4 +- qse/samples/awk/awk08.c | 4 +- qse/samples/awk/awk11.c | 5 +- 16 files changed, 189 insertions(+), 200 deletions(-) diff --git a/qse/doc/page/awk-embed.md b/qse/doc/page/awk-embed.md index 69b9d108..afd62abb 100644 --- a/qse/doc/page/awk-embed.md +++ b/qse/doc/page/awk-embed.md @@ -78,8 +78,8 @@ use this extension area to store data associated with the object. You can specify the size of the extension area when calling qse_awk_open(), qse_awk_rtx_open(), qse_awk_openstd(), and qse_awk_rtx_openstd(). These functions iniitlize the area to zeros. You can get the pointer -to the beginning of the area with qse_awk_getxtn(), qse_awk_rtx_getxtn(), -qse_awk_getxtnstd(), qse_awk_rtx_getxtnstd() respectively. +to the beginning of the area with qse_awk_getxtn() and qse_awk_rtx_getxtn(). + In the sample above, the string and the buffer used for I/O customization are declared globally. When you have multiple runtime contexts and independent diff --git a/qse/include/qse/awk/Awk.hpp b/qse/include/qse/awk/Awk.hpp index 82be893c..26ba68e3 100644 --- a/qse/include/qse/awk/Awk.hpp +++ b/qse/include/qse/awk/Awk.hpp @@ -1411,7 +1411,7 @@ private: void fini_runctx (); int dispatch_function (Run* run, const fnc_info_t* fi); - static const char_t* xerrstr (const awk_t* a, errnum_t num); + static const char_t* xerrstr (awk_t* a, errnum_t num); }; ///////////////////////////////// diff --git a/qse/include/qse/awk/awk.h b/qse/include/qse/awk/awk.h index c2d8b297..a1233c2e 100644 --- a/qse/include/qse/awk/awk.h +++ b/qse/include/qse/awk/awk.h @@ -93,8 +93,9 @@ typedef qse_flt_t qse_awk_flt_t; typedef struct qse_awk_t qse_awk_t; #define QSE_AWK_HDR \ - qse_mmgr_t* mmgr; \ - qse_cmgr_t* cmgr + qse_size_t _instsize; \ + qse_mmgr_t* _mmgr; \ + qse_cmgr_t* _cmgr typedef struct qse_awk_alt_t qse_awk_alt_t; struct qse_awk_alt_t @@ -131,6 +132,7 @@ struct qse_awk_alt_t typedef struct qse_awk_rtx_t qse_awk_rtx_t; #define QSE_AWK_RTX_HDR \ + qse_size_t _instsize; \ int id; \ qse_awk_t* awk @@ -1385,7 +1387,7 @@ typedef struct qse_awk_errinf_t qse_awk_errinf_t; * object with the qse_awk_seterrstr() function to customize an error string. */ typedef const qse_char_t* (*qse_awk_errstr_t) ( - const qse_awk_t* awk, /**< awk */ + qse_awk_t* awk, /**< awk */ qse_awk_errnum_t num /**< error number */ ); @@ -1562,23 +1564,17 @@ QSE_EXPORT void qse_awk_close ( * qse_awk_open(). */ #if defined(QSE_HAVE_INLINE) -static QSE_INLINE qse_mmgr_t* qse_awk_getmmgr (qse_awk_t* awk) { return ((qse_awk_alt_t*)awk)->mmgr; } -static QSE_INLINE qse_cmgr_t* qse_awk_getcmgr (qse_awk_t* awk) { return ((qse_awk_alt_t*)awk)->cmgr; } -static QSE_INLINE void qse_awk_setcmgr (qse_awk_t* awk, qse_cmgr_t* cmgr) { ((qse_awk_alt_t*)awk)->cmgr = cmgr; } +static QSE_INLINE void* qse_awk_getxtn (qse_awk_t* awk) { return (void*)((qse_uint8_t*)awk + ((qse_awk_alt_t*)awk)->_instsize); } +static QSE_INLINE qse_mmgr_t* qse_awk_getmmgr (qse_awk_t* awk) { return ((qse_awk_alt_t*)awk)->_mmgr; } +static QSE_INLINE qse_cmgr_t* qse_awk_getcmgr (qse_awk_t* awk) { return ((qse_awk_alt_t*)awk)->_cmgr; } +static QSE_INLINE void qse_awk_setcmgr (qse_awk_t* awk, qse_cmgr_t* cmgr) { ((qse_awk_alt_t*)awk)->_cmgr = cmgr; } #else -# define qse_awk_getmmgr(awk) (((qse_awk_alt_t*)(awk))->mmgr) -# define qse_awk_getcmgr(awk) (((qse_awk_alt_t*)(awk))->cmgr) -# define qse_awk_setcmgr(awk,_cmgr) (((qse_awk_alt_t*)(awk))->cmgr = (_cmgr)) +# define qse_awk_getxtn(awk) ((void*)((qse_uint8_t*)awk + ((qse_awk_alt_t*)awk)->_instsize)) +# define qse_awk_getmmgr(awk) (((qse_awk_alt_t*)(awk))->_mmgr) +# define qse_awk_getcmgr(awk) (((qse_awk_alt_t*)(awk))->_cmgr) +# define qse_awk_setcmgr(awk,_cmgr) (((qse_awk_alt_t*)(awk))->_cmgr = (_cmgr)) #endif /* QSE_HAVE_INLINE */ -/** - * The qse_awk_getxtn() function gets the poniter to the beginning - * of the extension area created with qse_awk_open (). - */ -QSE_EXPORT void* qse_awk_getxtn ( - qse_awk_t* awk -); - /** * The qse_awk_getprm() function retrieves primitive functions * associated. Actual function pointers are copied into a @@ -1914,10 +1910,10 @@ QSE_EXPORT void* qse_awk_callocmem ( #if defined(QSE_HAVE_INLINE) static QSE_INLINE void qse_awk_freemem (qse_awk_t* awk, void* ptr) { - QSE_MMGR_FREE (((qse_awk_alt_t*)(awk))->mmgr, ptr); + QSE_MMGR_FREE (((qse_awk_alt_t*)(awk))->_mmgr, ptr); } #else -# define qse_awk_freemem(awk, ptr) QSE_MMGR_FREE(((qse_awk_alt_t*)(awk))->mmgr, ptr); +# define qse_awk_freemem(awk, ptr) QSE_MMGR_FREE(((qse_awk_alt_t*)(awk))->_mmgr, ptr); #endif @@ -2282,6 +2278,15 @@ QSE_EXPORT int qse_awk_rtx_setofilename ( #if defined(QSE_HAVE_INLINE) +/** + * The qse_awk_rtx_getxtn() function gets the pointer to the extension area + * created with qse_awk_rtx_open(). + */ +static QSE_INLINE void* qse_awk_rtx_getxtn (qse_awk_rtx_t* rtx) +{ + return (void*)((qse_uint8_t*)rtx + ((qse_awk_rtx_alt_t*)rtx)->_instsize); +} + /** * The qse_awk_rtx_getawk() function gets the owner of a runtime context \a rtx. * \return owner of a runtime context \a rtx. @@ -2306,20 +2311,13 @@ static QSE_INLINE qse_cmgr_t* qse_awk_rtx_getcmgr (qse_awk_rtx_t* rtx) } #else +# define qse_awk_rtx_getxtn(rtx) ((void*)((qse_uint8_t*)rtx + ((qse_awk_rtx_alt_t*)rtx)->_instsize)) # define qse_awk_rtx_getawk(rtx) (((qse_awk_rtx_alt_t*)(rtx))->awk) # define qse_awk_rtx_getmmgr(rtx) (qse_awk_getmmgr(qse_awk_rtx_getawk(rtx))) # define qse_awk_rtx_getcmgr(rtx) (qse_awk_getcmgr(qse_awk_rtx_getawk(rtx))) #endif /* QSE_HAVE_INLINE */ -/** - * The qse_awk_rtx_getxtn() function gets the pointer to the extension area - * created with qse_awk_rtx_open(). - */ -QSE_EXPORT void* qse_awk_rtx_getxtn ( - qse_awk_rtx_t* rtx /**< runtime context */ -); - /** * The qse_awk_rtx_getnvmap() gets the map of named variables */ diff --git a/qse/include/qse/awk/stdawk.h b/qse/include/qse/awk/stdawk.h index e3e0026d..521cc106 100644 --- a/qse/include/qse/awk/stdawk.h +++ b/qse/include/qse/awk/stdawk.h @@ -117,15 +117,6 @@ QSE_EXPORT qse_awk_t* qse_awk_openstdwithmmgr ( qse_awk_errnum_t* errnum /**< pointer to an error number variable */ ); -/** - * The qse_awk_getxtnstd() gets the pointer to extension area created with - * qse_awk_openstd() or qse_awk_openstdwithmmgr(). You must not call - * qse_awk_getxtn() for sunch an object. - */ -QSE_EXPORT void* qse_awk_getxtnstd ( - qse_awk_t* awk -); - /** * The qse_awk_parsestd() functions parses source script. * The code below shows how to parse a literal string 'BEGIN { print 10; }' diff --git a/qse/lib/awk/Awk.cpp b/qse/lib/awk/Awk.cpp index b9c755e4..54661b3f 100644 --- a/qse/lib/awk/Awk.cpp +++ b/qse/lib/awk/Awk.cpp @@ -50,6 +50,14 @@ struct rxtn_t Awk::NoSource Awk::Source::NONE; +#if defined(QSE_HAVE_INLINE) +static QSE_INLINE xtn_t* GET_XTN(qse_awk_t* awk) { return (xtn_t*)((qse_uint8_t*)qse_awk_getxtn(awk) - QSE_SIZEOF(xtn_t)); } +static QSE_INLINE rxtn_t* GET_RXTN(qse_awk_rtx_t* rtx) { return (rxtn_t*)((qse_uint8_t*)qse_awk_rtx_getxtn(rtx) - QSE_SIZEOF(rxtn_t)); } +#else +#define GET_XTN(awk) ((xtn_t*)((qse_uint8_t*)qse_awk_getxtn(awk) - QSE_SIZEOF(xtn_t))) +#define GET_RXTN(rtx) ((rxtn_t*)((qse_uint8_t*)qse_awk_rtx_getxtn(rtx) - QSE_SIZEOF(rxtn_t))) +#endif + ////////////////////////////////////////////////////////////////// // Awk::RIO ////////////////////////////////////////////////////////////////// @@ -1039,9 +1047,9 @@ const Awk::char_t* Awk::getErrorString (errnum_t num) const return dflerrstr (awk, num); } -const Awk::char_t* Awk::xerrstr (const awk_t* a, errnum_t num) +const Awk::char_t* Awk::xerrstr (awk_t* a, errnum_t num) { - Awk* awk = *(Awk**)QSE_XTN(a); + Awk* awk = *(Awk**)GET_XTN(a); return awk->getErrorString (num); } @@ -1143,15 +1151,17 @@ int Awk::open () prm.modsym = modsym; qse_awk_errnum_t errnum; - this->awk = qse_awk_open (this->getMmgr(), QSE_SIZEOF(xtn_t), &prm, &errnum); + this->awk = qse_awk_open(this->getMmgr(), QSE_SIZEOF(xtn_t), &prm, &errnum); if (!this->awk) { this->setError (errnum); return -1; } + this->awk->_instsize += QSE_SIZEOF(xtn_t); + // associate this Awk object with the underlying awk object - xtn_t* xtn = (xtn_t*) QSE_XTN (this->awk); + xtn_t* xtn = (xtn_t*)GET_XTN(this->awk); xtn->awk = this; xtn->ecb.close = fini_xtn; xtn->ecb.clear = clear_xtn; @@ -1229,7 +1239,7 @@ void Awk::close () qse_cmgr_t* Awk::getCmgr () const { if (!this->awk) return QSE_NULL; - return this->awk->cmgr; + return qse_awk_getcmgr(this->awk); } void Awk::uponClosing () @@ -1368,7 +1378,7 @@ int Awk::init_runctx () runctx.rtx = rtx; - rxtn_t* rxtn = (rxtn_t*)QSE_XTN(rtx); + rxtn_t* rxtn = GET_RXTN(rtx); rxtn->run = &runctx; return 0; @@ -1766,7 +1776,7 @@ Awk::ssize_t Awk::readSource ( awk_t* awk, sio_cmd_t cmd, sio_arg_t* arg, char_t* data, size_t count) { - xtn_t* xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); Source::Data sdat (xtn->awk, Source::READ, arg); switch (cmd) @@ -1786,7 +1796,7 @@ Awk::ssize_t Awk::writeSource ( awk_t* awk, qse_awk_sio_cmd_t cmd, sio_arg_t* arg, char_t* data, size_t count) { - xtn_t* xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); Source::Data sdat (xtn->awk, Source::WRITE, arg); switch (cmd) @@ -1804,7 +1814,7 @@ Awk::ssize_t Awk::writeSource ( Awk::ssize_t Awk::pipeHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, size_t count) { - rxtn_t* rxtn = (rxtn_t*)QSE_XTN(rtx); + rxtn_t* rxtn = GET_RXTN(rtx); Awk* awk = rxtn->run->awk; QSE_ASSERT ((riod->type & 0xFF) == QSE_AWK_RIO_PIPE); @@ -1868,7 +1878,7 @@ Awk::ssize_t Awk::pipeHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* Awk::ssize_t Awk::fileHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, size_t count) { - rxtn_t* rxtn = (rxtn_t*)QSE_XTN(rtx); + rxtn_t* rxtn = GET_RXTN(rtx); Awk* awk = rxtn->run->awk; QSE_ASSERT ((riod->type & 0xFF) == QSE_AWK_RIO_FILE); @@ -1932,7 +1942,7 @@ Awk::ssize_t Awk::fileHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* Awk::ssize_t Awk::consoleHandler (rtx_t* rtx, rio_cmd_t cmd, rio_arg_t* riod, void* data, size_t count) { - rxtn_t* rxtn = (rxtn_t*) QSE_XTN (rtx); + rxtn_t* rxtn = GET_RXTN(rtx); Awk* awk = rxtn->run->awk; QSE_ASSERT ((riod->type & 0xFF) == QSE_AWK_RIO_CONSOLE); @@ -2114,37 +2124,37 @@ int Awk::nextConsole (Console& io) int Awk::functionHandler (rtx_t* rtx, const fnc_info_t* fi) { - rxtn_t* rxtn = (rxtn_t*) QSE_XTN (rtx); + rxtn_t* rxtn = GET_RXTN(rtx); return rxtn->run->awk->dispatch_function (rxtn->run, fi); } Awk::flt_t Awk::pow (awk_t* awk, flt_t x, flt_t y) { - xtn_t* xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); return xtn->awk->pow (x, y); } Awk::flt_t Awk::mod (awk_t* awk, flt_t x, flt_t y) { - xtn_t* xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); return xtn->awk->mod (x, y); } void* Awk::modopen (awk_t* awk, const mod_spec_t* spec) { - xtn_t* xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); return xtn->awk->modopen (spec); } void Awk::modclose (awk_t* awk, void* handle) { - xtn_t* xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); xtn->awk->modclose (handle); } void* Awk::modsym (awk_t* awk, void* handle, const char_t* name) { - xtn_t* xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); return xtn->awk->modsym (handle, name); } ///////////////////////////////// diff --git a/qse/lib/awk/awk-prv.h b/qse/lib/awk/awk-prv.h index b36c3196..2c2690f7 100644 --- a/qse/lib/awk/awk-prv.h +++ b/qse/lib/awk/awk-prv.h @@ -82,9 +82,9 @@ typedef struct qse_awk_tree_t qse_awk_tree_t; # define QSE_AWK_MAX_RTX_STACK_LIMIT ((qse_size_t)1 << (QSE_SIZEOF_VOID_P * 4)) #endif -#define QSE_AWK_ALLOC(awk,size) QSE_MMGR_ALLOC((awk)->mmgr,size) -#define QSE_AWK_REALLOC(awk,ptr,size) QSE_MMGR_REALLOC((awk)->mmgr,ptr,size) -#define QSE_AWK_FREE(awk,ptr) QSE_MMGR_FREE((awk)->mmgr,ptr) +#define QSE_AWK_ALLOC(awk,size) QSE_MMGR_ALLOC(qse_awk_getmmgr(awk),size) +#define QSE_AWK_REALLOC(awk,ptr,size) QSE_MMGR_REALLOC(qse_awk_getmmgr(awk),ptr,size) +#define QSE_AWK_FREE(awk,ptr) QSE_MMGR_FREE(qse_awk_getmmgr(awk),ptr) #define QSE_AWK_ISUPPER(awk,c) QSE_ISUPPER(c) #define QSE_AWK_ISLOWER(awk,c) QSE_ISLOWER(c) @@ -128,8 +128,8 @@ typedef struct qse_awk_tree_t qse_awk_tree_t; #define QSE_AWK_TOWUPPER(awk,c) QSE_TOWUPPER(c) #define QSE_AWK_TOWLOWER(awk,c) QSE_TOWLOWER(c) -#define QSE_AWK_STRDUP(awk,str) (qse_strdup(str,(awk)->mmgr)) -#define QSE_AWK_STRXDUP(awk,str,len) (qse_strxdup(str,len,(awk)->mmgr)) +#define QSE_AWK_STRDUP(awk,str) (qse_strdup(str,qse_awk_getmmgr(awk))) +#define QSE_AWK_STRXDUP(awk,str,len) (qse_strxdup(str,len,qse_awk_getmmgr(awk))) #define QSE_AWK_BYTE_PRINTABLE(x) ((x) <= 0x7F && (x) != '\\' && QSE_ISMPRINT(x)) diff --git a/qse/lib/awk/awk.c b/qse/lib/awk/awk.c index 7a1eb898..9863dd09 100644 --- a/qse/lib/awk/awk.c +++ b/qse/lib/awk/awk.c @@ -94,7 +94,7 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t xtnsize, const qse_awk_prm QSE_MMGR_FREE (mmgr, awk); awk = QSE_NULL; } - else QSE_MEMSET (QSE_XTN(awk), 0, xtnsize); + else QSE_MEMSET (awk + 1, 0, xtnsize); } else if (errnum) *errnum = QSE_AWK_ENOMEM; @@ -104,7 +104,7 @@ qse_awk_t* qse_awk_open (qse_mmgr_t* mmgr, qse_size_t xtnsize, const qse_awk_prm void qse_awk_close (qse_awk_t* awk) { qse_awk_fini (awk); - QSE_MMGR_FREE (awk->mmgr, awk); + QSE_MMGR_FREE (awk->_mmgr, awk); } int qse_awk_init (qse_awk_t* awk, qse_mmgr_t* mmgr, const qse_awk_prm_t* prm) @@ -145,8 +145,9 @@ int qse_awk_init (qse_awk_t* awk, qse_mmgr_t* mmgr, const qse_awk_prm_t* prm) QSE_MEMSET (awk, 0, QSE_SIZEOF(*awk)); /* remember the memory manager */ - awk->mmgr = mmgr; - awk->cmgr = qse_getdflcmgr(); + awk->_instsize = QSE_SIZEOF(*awk); + awk->_mmgr = mmgr; + awk->_cmgr = qse_getdflcmgr(); /* initialize error handling fields */ awk->errinf.num = QSE_AWK_ENOERR; @@ -404,11 +405,6 @@ void qse_awk_clear (qse_awk_t* awk) */ } -void* qse_awk_getxtn (qse_awk_t* awk) -{ - return QSE_XTN(awk); -} - void qse_awk_getprm (qse_awk_t* awk, qse_awk_prm_t* prm) { *prm = awk->prm; @@ -423,7 +419,7 @@ static int dup_str_opt (qse_awk_t* awk, const void* value, qse_cstr_t* tmp) { if (value) { - tmp->ptr = qse_strdup(value, awk->mmgr); + tmp->ptr = qse_strdup(value, qse_awk_getmmgr(awk)); if (!tmp->ptr) { qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL); diff --git a/qse/lib/awk/fnc.c b/qse/lib/awk/fnc.c index 7de0da30..47ddb1f4 100644 --- a/qse/lib/awk/fnc.c +++ b/qse/lib/awk/fnc.c @@ -1020,7 +1020,7 @@ static int __substitute (qse_awk_rtx_t* rtx, qse_awk_int_t max_count) s2_free = (qse_char_t*)s2.ptr; } - if (qse_str_init (&new, rtx->awk->mmgr, s2.len) <= -1) + if (qse_str_init (&new, qse_awk_rtx_getmmgr(rtx), s2.len) <= -1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); goto oops; @@ -1381,14 +1381,14 @@ int qse_awk_fnc_sprintf (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) qse_mcstr_t cs0; qse_mcstr_t x; - if (qse_mbs_init(&out, rtx->awk->mmgr, 256) <= -1) + if (qse_mbs_init(&out, qse_awk_rtx_getmmgr(rtx), 256) <= -1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); goto oops_mbs; } out_inited = 1; - if (qse_mbs_init(&fbu, rtx->awk->mmgr, 256) <= -1) + if (qse_mbs_init(&fbu, qse_awk_rtx_getmmgr(rtx), 256) <= -1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); goto oops_mbs; @@ -1422,14 +1422,14 @@ int qse_awk_fnc_sprintf (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) qse_cstr_t cs0; qse_cstr_t x; - if (qse_str_init(&out, rtx->awk->mmgr, 256) <= -1) + if (qse_str_init(&out, qse_awk_rtx_getmmgr(rtx), 256) <= -1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); goto oops; } out_inited = 1; - if (qse_str_init(&fbu, rtx->awk->mmgr, 256) <= -1) + if (qse_str_init(&fbu, qse_awk_rtx_getmmgr(rtx), 256) <= -1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); goto oops; diff --git a/qse/lib/awk/misc.c b/qse/lib/awk/misc.c index ab3fdb16..3caebf2f 100644 --- a/qse/lib/awk/misc.c +++ b/qse/lib/awk/misc.c @@ -72,7 +72,7 @@ qse_char_t* qse_awk_strxdup (qse_awk_t* awk, const qse_char_t* s, qse_size_t l) qse_char_t* qse_awk_cstrdup (qse_awk_t* awk, const qse_cstr_t* s) { - qse_char_t* ptr = qse_cstrdup(s, awk->mmgr); + qse_char_t* ptr = qse_cstrdup(s, qse_awk_getmmgr(awk)); if (!ptr) qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL); return ptr; } @@ -655,7 +655,7 @@ int qse_awk_buildrex ( if (code || icode) { p = qse_buildrex ( - awk->mmgr, awk->opt.depth.s.rex_build, + qse_awk_getmmgr(awk), awk->opt.depth.s.rex_build, ((awk->opt.trait & QSE_AWK_REXBOUND)? 0: QSE_REX_NOBOUND), ptn, len, &err ); @@ -677,7 +677,7 @@ int qse_awk_buildrex ( if (code) { - tre = qse_tre_open (awk->mmgr, 0); + tre = qse_tre_open(qse_awk_getmmgr(awk), 0); if (tre == QSE_NULL) { *errnum = QSE_AWK_ENOMEM; @@ -703,7 +703,7 @@ int qse_awk_buildrex ( if (icode) { - itre = qse_tre_open (awk->mmgr, 0); + itre = qse_tre_open(qse_awk_getmmgr(awk), 0); if (itre == QSE_NULL) { if (tre) qse_tre_close (tre); @@ -797,7 +797,7 @@ int qse_awk_matchrex ( /* submatch is not supported */ x = qse_matchrex ( - awk->mmgr, awk->opt.depth.s.rex_match, code, + qse_awk_getmmgr(awk), awk->opt.depth.s.rex_match, code, (icase? QSE_REX_IGNORECASE: 0), str, substr, match, &err); if (x <= -1) *errnum = rexerr_to_errnum(err); return x; @@ -873,7 +873,7 @@ int qse_awk_rtx_matchrex ( #if defined(USE_REX) /* submatch not supported */ x = qse_matchrex ( - rtx->awk->mmgr, rtx->awk->opt.depth.s.rex_match, + qse_awk_rtx_getmmgr(rtx), rtx->awk->opt.depth.s.rex_match, code, (icase? QSE_REX_IGNORECASE: 0), str, substr, match, &rexerr); if (x <= -1) qse_awk_rtx_seterrnum (rtx, rexerr_to_errnum(rexerr), QSE_NULL); diff --git a/qse/lib/awk/parse.c b/qse/lib/awk/parse.c index 94cb1fba..5902ed46 100644 --- a/qse/lib/awk/parse.c +++ b/qse/lib/awk/parse.c @@ -4473,7 +4473,7 @@ static qse_awk_nde_t* parse_primary_mbs (qse_awk_t* awk, const qse_awk_loc_t* xl /* the MBS token doesn't include a character greater than 0xFF in awk->tok.name though it is a wide character string. * so i simply use QSE_CMGR_MB8 to store it in a byte string */ - nde->ptr = qse_wcsntombsdupwithcmgr(QSE_STR_PTR(awk->tok.name), wcslen, &mbslen, awk->mmgr, qse_findcmgrbyid(QSE_CMGR_MB8)); + nde->ptr = qse_wcsntombsdupwithcmgr(QSE_STR_PTR(awk->tok.name), wcslen, &mbslen, qse_awk_getmmgr(awk), qse_findcmgrbyid(QSE_CMGR_MB8)); if (!nde->ptr) { qse_awk_seterror (awk, QSE_AWK_ENOMEM, QSE_NULL, xloc); diff --git a/qse/lib/awk/run.c b/qse/lib/awk/run.c index 755092c7..2a4a54dd 100644 --- a/qse/lib/awk/run.c +++ b/qse/lib/awk/run.c @@ -53,9 +53,6 @@ # error unsupported. qse_awk_int_t too big #endif -#define MMGR(rtx) ((rtx)->awk->mmgr) -#define CMGR(rtx) ((rtx)->awk->cmgr) - enum exit_level_t { EXIT_NONE, @@ -710,11 +707,6 @@ int qse_awk_rtx_setofilename (qse_awk_rtx_t* rtx, const qse_char_t* name, qse_si return n; } -void* qse_awk_rtx_getxtn (qse_awk_rtx_t* rtx) -{ - return QSE_XTN(rtx); -} - qse_htb_t* qse_awk_rtx_getnvmap (qse_awk_rtx_t* rtx) { return rtx->named; @@ -794,6 +786,7 @@ qse_awk_rtx_t* qse_awk_rtx_open (qse_awk_t* awk, qse_size_t xtnsize, qse_awk_rio /* initialize the rtx object */ QSE_MEMSET (rtx, 0, QSE_SIZEOF(qse_awk_rtx_t) + xtnsize); + rtx->_instsize = QSE_SIZEOF(qse_awk_rtx_t); if (init_rtx(rtx, awk, rio) <= -1) { qse_awk_freemem (awk, rtx); @@ -949,16 +942,16 @@ static int init_rtx (qse_awk_rtx_t* rtx, qse_awk_t* awk, qse_awk_rio_t* rio) rtx->inrec.maxflds = 0; rtx->inrec.d0 = qse_awk_val_nil; - if (qse_str_init(&rtx->inrec.line, MMGR(rtx), DEF_BUF_CAPA) <= -1) goto oops_1; - if (qse_str_init(&rtx->inrec.linew, MMGR(rtx), DEF_BUF_CAPA) <= -1) goto oops_2; - if (qse_str_init(&rtx->inrec.lineg, MMGR(rtx), DEF_BUF_CAPA) <= -1) goto oops_3; - if (qse_str_init(&rtx->format.out, MMGR(rtx), 256) <= -1) goto oops_4; - if (qse_str_init(&rtx->format.fmt, MMGR(rtx), 256) <= -1) goto oops_5; + if (qse_str_init(&rtx->inrec.line, qse_awk_rtx_getmmgr(rtx), DEF_BUF_CAPA) <= -1) goto oops_1; + if (qse_str_init(&rtx->inrec.linew, qse_awk_rtx_getmmgr(rtx), DEF_BUF_CAPA) <= -1) goto oops_2; + if (qse_str_init(&rtx->inrec.lineg, qse_awk_rtx_getmmgr(rtx), DEF_BUF_CAPA) <= -1) goto oops_3; + if (qse_str_init(&rtx->format.out, qse_awk_rtx_getmmgr(rtx), 256) <= -1) goto oops_4; + if (qse_str_init(&rtx->format.fmt, qse_awk_rtx_getmmgr(rtx), 256) <= -1) goto oops_5; - if (qse_mbs_init(&rtx->formatmbs.out, MMGR(rtx), 256) <= -1) goto oops_6; - if (qse_mbs_init(&rtx->formatmbs.fmt, MMGR(rtx), 256) <= -1) goto oops_7; + if (qse_mbs_init(&rtx->formatmbs.out, qse_awk_rtx_getmmgr(rtx), 256) <= -1) goto oops_6; + if (qse_mbs_init(&rtx->formatmbs.fmt, qse_awk_rtx_getmmgr(rtx), 256) <= -1) goto oops_7; - rtx->named = qse_htb_open(MMGR(rtx), QSE_SIZEOF(rtx), 1024, 70, QSE_SIZEOF(qse_char_t), 1); + rtx->named = qse_htb_open(qse_awk_rtx_getmmgr(rtx), QSE_SIZEOF(rtx), 1024, 70, QSE_SIZEOF(qse_char_t), 1); if (!rtx->named) goto oops_8; *(qse_awk_rtx_t**)QSE_XTN(rtx->named) = rtx; qse_htb_setstyle (rtx->named, &style_for_named); @@ -4559,7 +4552,7 @@ static QSE_INLINE int __cmp_str_mbs (qse_awk_rtx_t* rtx, qse_awk_val_t* left, qs qse_size_t mbslen; int n; - mbsptr = qse_wcsntombsdupwithcmgr(ls->val.ptr, ls->val.len, &mbslen, MMGR(rtx), CMGR(rtx)); + mbsptr = qse_wcsntombsdupwithcmgr(ls->val.ptr, ls->val.len, &mbslen, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); if (!mbsptr) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -6877,7 +6870,7 @@ static int shorten_record (qse_awk_rtx_t* rtx, qse_size_t nflds) } } - if (qse_str_init(&tmp, MMGR(rtx), QSE_STR_LEN(&rtx->inrec.line)) <= -1) + if (qse_str_init(&tmp, qse_awk_rtx_getmmgr(rtx), QSE_STR_LEN(&rtx->inrec.line)) <= -1) { if (ofs_free) qse_awk_rtx_freemem (rtx, ofs_free); if (nflds > 1) qse_awk_rtx_refdownval (rtx, v); @@ -6994,7 +6987,7 @@ static qse_char_t* idxnde_to_str (qse_awk_rtx_t* rtx, qse_awk_nde_t* nde, qse_ch out.type = QSE_AWK_RTX_VALTOSTR_STRPCAT; out.u.strpcat = &idxstr; - if (qse_str_init(&idxstr, MMGR(rtx), DEF_BUF_CAPA) <= -1) + if (qse_str_init(&idxstr, qse_awk_rtx_getmmgr(rtx), DEF_BUF_CAPA) <= -1) { SETERR_LOC (rtx, QSE_AWK_ENOMEM, &nde->loc); return QSE_NULL; diff --git a/qse/lib/awk/std.c b/qse/lib/awk/std.c index 30adb526..f6cf0ae7 100644 --- a/qse/lib/awk/std.c +++ b/qse/lib/awk/std.c @@ -158,6 +158,15 @@ typedef struct ioattr_t qse_ntime_t tmout[4]; } ioattr_t; +#if defined(QSE_HAVE_INLINE) +static QSE_INLINE xtn_t* GET_XTN(qse_awk_t* awk) { return (xtn_t*)((qse_uint8_t*)qse_awk_getxtn(awk) - QSE_SIZEOF(xtn_t)); } +static QSE_INLINE rxtn_t* GET_RXTN(qse_awk_rtx_t* rtx) { return (rxtn_t*)((qse_uint8_t*)qse_awk_rtx_getxtn(rtx) - QSE_SIZEOF(rxtn_t)); } +#else +#define GET_XTN(awk) ((xtn_t*)((qse_uint8_t*)qse_awk_getxtn(awk) - QSE_SIZEOF(xtn_t))) +#define GET_RXTN(rtx) ((rxtn_t*)((qse_uint8_t*)qse_awk_rtx_getxtn(rtx) - QSE_SIZEOF(rxtn_t))) +#endif + + static ioattr_t* get_ioattr (qse_htb_t* tab, const qse_char_t* ptr, qse_size_t len); qse_awk_flt_t qse_awk_stdmathpow (qse_awk_t* awk, qse_awk_flt_t x, qse_awk_flt_t y) @@ -222,7 +231,7 @@ void qse_awk_stdmodshutdown (qse_awk_t* awk) static void* std_mod_open_checked (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) { - xtn_t* xtn = QSE_XTN(awk); + xtn_t* xtn = GET_XTN(awk); if (!xtn->stdmod_up) { @@ -251,9 +260,9 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) tmp[count] = QSE_NULL; #if defined(QSE_CHAR_IS_MCHAR) - modpath = qse_mbsadup (tmp, QSE_NULL, awk->mmgr); + modpath = qse_mbsadup (tmp, QSE_NULL, qse_awk_getmmgr(awk)); #else - modpath = qse_wcsatombsdupwithcmgr(tmp, QSE_NULL, awk->mmgr, awk->cmgr); + modpath = qse_wcsatombsdupwithcmgr(tmp, QSE_NULL, qse_awk_getmmgr(awk), qse_awk_getcmgr(awk)); #endif if (!modpath) { @@ -276,7 +285,7 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) lt_dladvise_destroy (&adv); - QSE_MMGR_FREE (awk->mmgr, modpath); + QSE_MMGR_FREE (qse_awk_getmmgr(awk), modpath); return h; @@ -293,7 +302,7 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) if (spec->postfix) tmp[count++] = spec->postfix; tmp[count] = QSE_NULL; - modpath = qse_stradup (tmp, QSE_NULL, awk->mmgr); + modpath = qse_stradup (tmp, QSE_NULL, qse_awk_getmmgr(awk)); if (!modpath) { qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL); @@ -302,7 +311,7 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) h = LoadLibrary (modpath); - QSE_MMGR_FREE (awk->mmgr, modpath); + QSE_MMGR_FREE (qse_awk_getmmgr(awk), modpath); QSE_ASSERT (QSE_SIZEOF(h) <= QSE_SIZEOF(void*)); return h; @@ -323,9 +332,9 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) tmp[count] = QSE_NULL; #if defined(QSE_CHAR_IS_MCHAR) - modpath = qse_mbsadup (tmp, QSE_NULL, awk->mmgr); + modpath = qse_mbsadup (tmp, QSE_NULL, qse_awk_getmmgr(awk)); #else - modpath = qse_wcsatombsdupwithcmgr(tmp, QSE_NULL, awk->mmgr, awk->cmgr); + modpath = qse_wcsatombsdupwithcmgr(tmp, QSE_NULL, qse_awk_getmmgr(awk), qse_awk_getcmgr(awk)); #endif if (!modpath) { @@ -338,7 +347,7 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) rc = DosLoadModule (errbuf, QSE_COUNTOF(errbuf) - 1, modpath, &h); if (rc != NO_ERROR) h = QSE_NULL; - QSE_MMGR_FREE (awk->mmgr, modpath); + QSE_MMGR_FREE (qse_awk_getmmgr(awk), modpath); QSE_ASSERT (QSE_SIZEOF(h) <= QSE_SIZEOF(void*)); return h; @@ -360,9 +369,9 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) tmp[count] = QSE_NULL; #if defined(QSE_CHAR_IS_MCHAR) - modpath = qse_mbsadup(tmp, QSE_NULL, awk->mmgr); + modpath = qse_mbsadup(tmp, QSE_NULL, qse_awk_getmmgr(awk)); #else - modpath = qse_wcsatombsdupwithcmgr(tmp, QSE_NULL, awk->mmgr, awk->cmgr); + modpath = qse_wcsatombsdupwithcmgr(tmp, QSE_NULL, qse_awk_getmmgr(awk), qse_awk_getcmgr(awk)); #endif if (!modpath) { @@ -372,7 +381,7 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) h = LoadModule (modpath); - QSE_MMGR_FREE (awk->mmgr, modpath); + QSE_MMGR_FREE (qse_awk_getmmgr(awk), modpath); QSE_ASSERT (QSE_SIZEOF(h) <= QSE_SIZEOF(void*)); return h; @@ -391,9 +400,9 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) tmp[count] = QSE_NULL; #if defined(QSE_CHAR_IS_MCHAR) - modpath = qse_mbsadup(tmp, QSE_NULL, awk->mmgr); + modpath = qse_mbsadup(tmp, QSE_NULL, qse_awk_getmmgr(awk)); #else - modpath = qse_wcsatombsdupwithcmgr(tmp, QSE_NULL, awk->mmgr, awk->cmgr); + modpath = qse_wcsatombsdupwithcmgr(tmp, QSE_NULL, qse_awk_getmmgr(awk), qse_awk_getcmgr(awk)); #endif if (!modpath) { @@ -407,7 +416,7 @@ void* qse_awk_stdmodopen (qse_awk_t* awk, const qse_awk_mod_spec_t* spec) qse_awk_seterrfmt (awk, QSE_AWK_ESYSERR, QSE_NULL, QSE_T("%hs"), dlerror()); } - QSE_MMGR_FREE (awk->mmgr, modpath); + QSE_MMGR_FREE (qse_awk_getmmgr(awk), modpath); return h; @@ -442,7 +451,7 @@ void* qse_awk_stdmodsym (qse_awk_t* awk, void* handle, const qse_char_t* name) #if defined(QSE_CHAR_IS_MCHAR) mname = (qse_mchar_t*)name; #else - mname = qse_wcstombsdupwithcmgr(name, QSE_NULL, awk->mmgr, awk->cmgr); + mname = qse_wcstombsdupwithcmgr(name, QSE_NULL, qse_awk_getmmgr(awk), qse_awk_getcmgr(awk)); if (!mname) { qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL); @@ -472,7 +481,7 @@ void* qse_awk_stdmodsym (qse_awk_t* awk, void* handle, const qse_char_t* name) #if defined(QSE_CHAR_IS_MCHAR) /* nothing to do */ #else - QSE_MMGR_FREE (awk->mmgr, mname); + QSE_MMGR_FREE (qse_awk_getmmgr(awk), mname); #endif return s; @@ -488,7 +497,7 @@ qse_awk_t* qse_awk_openstd (qse_size_t xtnsize, qse_awk_errnum_t* errnum) static void fini_xtn (qse_awk_t* awk) { - xtn_t* xtn = QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); if (xtn->stdmod_up) { qse_awk_stdmodshutdown (awk); @@ -527,8 +536,11 @@ qse_awk_t* qse_awk_openstdwithmmgr (qse_mmgr_t* mmgr, qse_size_t xtnsize, qse_aw } #endif + /* adjust the object size by the sizeof xtn_t so that qse_getxtn() returns the right pointer. */ + awk->_instsize += QSE_SIZEOF(xtn_t); + /* initialize extension */ - xtn = (xtn_t*) QSE_XTN (awk); + xtn = GET_XTN(awk); /* the extension area has been cleared in qse_awk_open(). * QSE_MEMSET (xtn, 0, QSE_SIZEOF(*xtn));*/ @@ -560,15 +572,10 @@ oops: return QSE_NULL; } -void* qse_awk_getxtnstd (qse_awk_t* awk) -{ - return (void*)((xtn_t*)QSE_XTN(awk) + 1); -} - static qse_sio_t* open_sio (qse_awk_t* awk, const qse_char_t* file, int flags) { qse_sio_t* sio; - sio = qse_sio_open (awk->mmgr, 0, file, flags); + sio = qse_sio_open (qse_awk_getmmgr(awk), 0, file, flags); if (sio == QSE_NULL) { qse_cstr_t errarg; @@ -582,7 +589,7 @@ static qse_sio_t* open_sio (qse_awk_t* awk, const qse_char_t* file, int flags) static qse_sio_t* open_sio_rtx (qse_awk_rtx_t* rtx, const qse_char_t* file, int flags) { qse_sio_t* sio; - sio = qse_sio_open (rtx->awk->mmgr, 0, file, flags); + sio = qse_sio_open (qse_awk_rtx_getmmgr(rtx), 0, file, flags); if (sio == QSE_NULL) { qse_cstr_t errarg; @@ -603,7 +610,7 @@ static qse_cstr_t sio_std_names[] = static qse_sio_t* open_sio_std (qse_awk_t* awk, qse_sio_std_t std, int flags) { qse_sio_t* sio; - sio = qse_sio_openstd (awk->mmgr, 0, std, flags); + sio = qse_sio_openstd (qse_awk_getmmgr(awk), 0, std, flags); if (sio == QSE_NULL) qse_awk_seterrnum (awk, QSE_AWK_EOPEN, &sio_std_names[std]); return sio; } @@ -612,7 +619,7 @@ static qse_sio_t* open_sio_std_rtx (qse_awk_rtx_t* rtx, qse_sio_std_t std, int f { qse_sio_t* sio; - sio = qse_sio_openstd (rtx->awk->mmgr, 0, std, flags); + sio = qse_sio_openstd (qse_awk_rtx_getmmgr(rtx), 0, std, flags); if (sio == QSE_NULL) qse_awk_rtx_seterrnum (rtx, QSE_AWK_EOPEN, &sio_std_names[std]); return sio; } @@ -739,7 +746,7 @@ static qse_ssize_t sf_in_open (qse_awk_t* awk, qse_awk_sio_arg_t* arg, xtn_t* xt } arg->handle = qse_sio_open ( - awk->mmgr, 0, path, QSE_SIO_READ | QSE_SIO_IGNOREMBWCERR | QSE_SIO_KEEPPATH + qse_awk_getmmgr(awk), 0, path, QSE_SIO_READ | QSE_SIO_IGNOREMBWCERR | QSE_SIO_KEEPPATH ); if (dbuf) qse_awk_freemem (awk, dbuf); @@ -754,7 +761,7 @@ static qse_ssize_t sf_in_open (qse_awk_t* awk, qse_awk_sio_arg_t* arg, xtn_t* xt /* TODO: use the system handle(file descriptor) instead of the path? */ /*syshnd = qse_sio_gethnd(arg->handle);*/ - if (qse_get_file_attr_with_mmgr(path, 0, &fattr, awk->mmgr) >= 0) + if (qse_get_file_attr_with_mmgr(path, 0, &fattr, qse_awk_getmmgr(awk)) >= 0) { struct { @@ -891,7 +898,7 @@ static qse_ssize_t sf_in_read (qse_awk_t* awk, qse_awk_sio_arg_t* arg, qse_char_ static qse_ssize_t sf_in (qse_awk_t* awk, qse_awk_sio_cmd_t cmd, qse_awk_sio_arg_t* arg, qse_char_t* data, qse_size_t size) { - xtn_t* xtn = QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); switch (cmd) { @@ -912,7 +919,7 @@ static qse_ssize_t sf_in (qse_awk_t* awk, qse_awk_sio_cmd_t cmd, qse_awk_sio_arg static qse_ssize_t sf_out (qse_awk_t* awk, qse_awk_sio_cmd_t cmd, qse_awk_sio_arg_t* arg, qse_char_t* data, qse_size_t size) { - xtn_t* xtn = QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); switch (cmd) { @@ -947,7 +954,7 @@ static qse_ssize_t sf_out (qse_awk_t* awk, qse_awk_sio_cmd_t cmd, qse_awk_sio_ar return 1; case QSE_AWK_PARSESTD_STR: - xtn->s.out.u.str.buf = qse_str_open (awk->mmgr, 0, 512); + xtn->s.out.u.str.buf = qse_str_open (qse_awk_getmmgr(awk), 0, 512); if (xtn->s.out.u.str.buf == QSE_NULL) { qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL); @@ -1025,7 +1032,7 @@ static qse_ssize_t sf_out (qse_awk_t* awk, qse_awk_sio_cmd_t cmd, qse_awk_sio_ar int qse_awk_parsestd (qse_awk_t* awk, qse_awk_parsestd_t in[], qse_awk_parsestd_t* out) { qse_awk_sio_t sio; - xtn_t* xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); int n; if (in == QSE_NULL || (in[0].type != QSE_AWK_PARSESTD_FILE && @@ -1183,7 +1190,7 @@ static qse_ssize_t pio_handler_open (qse_awk_rtx_t* rtx, qse_awk_rio_arg_t* riod } handle = qse_pio_open ( - rtx->awk->mmgr, + qse_awk_rtx_getmmgr(rtx), 0, riod->name, QSE_NULL, @@ -1280,7 +1287,7 @@ static qse_ssize_t awk_rio_pipe (qse_awk_rtx_t* rtx, qse_awk_rio_cmd_t cmd, qse_ ioattr_t* ioattr; rxtn_t* rxtn; - rxtn = (rxtn_t*)QSE_XTN(rtx); + rxtn = GET_RXTN(rtx); ioattr = get_ioattr(&rxtn->cmgrtab, riod->name, qse_strlen(riod->name)); if (ioattr) @@ -1327,7 +1334,7 @@ static qse_ssize_t awk_rio_file (qse_awk_rtx_t* rtx, qse_awk_rio_cmd_t cmd, qse_ return -1; } - handle = qse_sio_open (rtx->awk->mmgr, 0, riod->name, flags); + handle = qse_sio_open (qse_awk_rtx_getmmgr(rtx), 0, riod->name, flags); if (handle == QSE_NULL) { qse_cstr_t errarg; @@ -1374,12 +1381,12 @@ static qse_ssize_t awk_rio_file (qse_awk_rtx_t* rtx, qse_awk_rio_cmd_t cmd, qse_ static int open_rio_console (qse_awk_rtx_t* rtx, qse_awk_rio_arg_t* riod) { - rxtn_t* rxtn = (rxtn_t*) QSE_XTN (rtx); + rxtn_t* rxtn = GET_RXTN(rtx); qse_sio_t* sio; if (riod->mode == QSE_AWK_RIO_CONSOLE_READ) { - xtn_t* xtn = (xtn_t*)QSE_XTN(rtx->awk); + xtn_t* xtn = (xtn_t*)GET_XTN(rtx->awk); if (rxtn->c.in.files == QSE_NULL) { @@ -1671,8 +1678,8 @@ static qse_ssize_t awk_rio_console (qse_awk_rtx_t* rtx, qse_awk_rio_cmd_t cmd, q static void fini_rxtn (qse_awk_rtx_t* rtx) { - rxtn_t* rxtn = (rxtn_t*) QSE_XTN (rtx); - /*xtn_t* xtn = (xtn_t*) QSE_XTN (rtx->awk);*/ + rxtn_t* rxtn = GET_RXTN(rtx); + /*xtn_t* xtn = (xtn_t*)GET_XTN(rtx->awk);*/ if (rxtn->cmgrtab_inited) { @@ -1826,12 +1833,12 @@ static int __build_environ ( /* mbstowcsdup() may fail for invalid encoding. as the environment * variaables are not under control, call mbstowcsalldup() instead * to go on despite encoding failure */ - kptr = qse_mbstowcsalldupwithcmgr(envarr[count], &klen, rtx->awk->mmgr, rtx->awk->cmgr); - vptr = qse_mbstowcsalldupwithcmgr(eq + 1, QSE_NULL, rtx->awk->mmgr, rtx->awk->cmgr); + kptr = qse_mbstowcsalldupwithcmgr(envarr[count], &klen, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); + vptr = qse_mbstowcsalldupwithcmgr(eq + 1, QSE_NULL, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); if (kptr == QSE_NULL || vptr == QSE_NULL) { - if (kptr) QSE_MMGR_FREE (rtx->awk->mmgr, kptr); - if (vptr) QSE_MMGR_FREE (rtx->awk->mmgr, vptr); + if (kptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), kptr); + if (vptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), vptr); qse_awk_rtx_refdownval (rtx, v_env); qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -1845,12 +1852,12 @@ static int __build_environ ( *eq = QSE_WT('\0'); - kptr = qse_wcstombsdupwithcmgr(envarr[count], &klen, rtx->awk->mmgr, rtx->awk->cmgr); - vptr = qse_wcstombsdupwithcmgr(eq + 1, QSE_NULL, rtx->awk->mmgr, rtx->awk->cmgr); + kptr = qse_wcstombsdupwithcmgr(envarr[count], &klen, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); + vptr = qse_wcstombsdupwithcmgr(eq + 1, QSE_NULL, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); if (kptr == QSE_NULL || vptr == QSE_NULL) { - if (kptr) QSE_MMGR_FREE (rtx->awk->mmgr, kptr); - if (vptr) QSE_MMGR_FREE (rtx->awk->mmgr, vptr); + if (kptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), kptr); + if (vptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), vptr); qse_awk_rtx_refdownval (rtx, v_env); qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -1870,8 +1877,8 @@ static int __build_environ ( (defined(QSE_ENV_CHAR_IS_WCHAR) && defined(QSE_CHAR_IS_WCHAR))) /* nothing to do */ #else - if (vptr) QSE_MMGR_FREE (rtx->awk->mmgr, vptr); - if (kptr) QSE_MMGR_FREE (rtx->awk->mmgr, kptr); + if (vptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), vptr); + if (kptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), kptr); #endif qse_awk_rtx_refdownval (rtx, v_env); return -1; @@ -1894,8 +1901,8 @@ static int __build_environ ( (defined(QSE_ENV_CHAR_IS_WCHAR) && defined(QSE_CHAR_IS_WCHAR))) /* nothing to do */ #else - if (vptr) QSE_MMGR_FREE (rtx->awk->mmgr, vptr); - if (kptr) QSE_MMGR_FREE (rtx->awk->mmgr, kptr); + if (vptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), vptr); + if (kptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), kptr); #endif /* the values previously assigned into the @@ -1910,8 +1917,8 @@ static int __build_environ ( (defined(QSE_ENV_CHAR_IS_WCHAR) && defined(QSE_CHAR_IS_WCHAR))) /* nothing to do */ #else - if (vptr) QSE_MMGR_FREE (rtx->awk->mmgr, vptr); - if (kptr) QSE_MMGR_FREE (rtx->awk->mmgr, kptr); + if (vptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), vptr); + if (kptr) QSE_MMGR_FREE (qse_awk_rtx_getmmgr(rtx), kptr); #endif } } @@ -1931,7 +1938,7 @@ static int build_environ (qse_awk_rtx_t* rtx, int gbl_id) qse_env_t env; int xret; - if (qse_env_init (&env, rtx->awk->mmgr, 1) <= -1) + if (qse_env_init(&env, qse_awk_rtx_getmmgr(rtx), 1) <= -1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); return -1; @@ -1966,7 +1973,7 @@ qse_awk_rtx_t* qse_awk_rtx_openstd ( rxtn_t* rxtn; xtn_t* xtn; - xtn = (xtn_t*)QSE_XTN (awk); + xtn = GET_XTN(awk); rio.pipe = awk_rio_pipe; rio.file = awk_rio_file; @@ -1975,11 +1982,13 @@ qse_awk_rtx_t* qse_awk_rtx_openstd ( rtx = qse_awk_rtx_open(awk, QSE_SIZEOF(rxtn_t) + xtnsize, &rio); if (!rtx) return QSE_NULL; - rxtn = (rxtn_t*) QSE_XTN (rtx); + rtx->_instsize += QSE_SIZEOF(rxtn_t); + + rxtn = GET_RXTN(rtx); if (rtx->awk->opt.trait & QSE_AWK_RIO) { - if (qse_htb_init(&rxtn->cmgrtab, awk->mmgr, 256, 70, QSE_SIZEOF(qse_char_t), 1) <= -1) + if (qse_htb_init(&rxtn->cmgrtab, qse_awk_getmmgr(awk), 256, 70, QSE_SIZEOF(qse_char_t), 1) <= -1) { qse_awk_rtx_close (rtx); qse_awk_seterrnum (awk, QSE_AWK_ENOMEM, QSE_NULL); @@ -2032,12 +2041,6 @@ qse_awk_rtx_t* qse_awk_rtx_openstd ( return rtx; } -void* qse_awk_rtx_getxtnstd (qse_awk_rtx_t* rtx) -{ - return (void*)((rxtn_t*)QSE_XTN(rtx) + 1); -} - - static int timeout_code (const qse_char_t* name) { if (qse_strcasecmp (name, QSE_T("rtimeout")) == 0) return 0; @@ -2101,7 +2104,7 @@ static int fnc_setioattr (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) int i, ret = 0, fret = 0; int tmout; - rxtn = (rxtn_t*) QSE_XTN (rtx); + rxtn = GET_RXTN(rtx); QSE_ASSERT (rxtn->cmgrtab_inited == 1); for (i = 0; i < 3; i++) @@ -2223,7 +2226,7 @@ static int fnc_getioattr (qse_awk_rtx_t* rtx, const qse_awk_fnc_info_t* fi) ioattr_t* ioattr; ioattr_t ioattr_buf; - rxtn = (rxtn_t*) QSE_XTN (rtx); + rxtn = GET_RXTN(rtx); QSE_ASSERT (rxtn->cmgrtab_inited == 1); for (i = 0; i < 2; i++) @@ -2305,10 +2308,9 @@ done: qse_cmgr_t* qse_awk_rtx_getiocmgrstd (qse_awk_rtx_t* rtx, const qse_char_t* ioname) { #if defined(QSE_CHAR_IS_WCHAR) - rxtn_t* rxtn; + rxtn_t* rxtn = GET_RXTN(rtx); ioattr_t* ioattr; - rxtn = (rxtn_t*) QSE_XTN (rtx); QSE_ASSERT (rxtn->cmgrtab_inited == 1); ioattr = get_ioattr(&rxtn->cmgrtab, ioname, qse_strlen(ioname)); @@ -2319,9 +2321,7 @@ qse_cmgr_t* qse_awk_rtx_getiocmgrstd (qse_awk_rtx_t* rtx, const qse_char_t* iona static int add_globals (qse_awk_t* awk) { - xtn_t* xtn; - - xtn = (xtn_t*) QSE_XTN (awk); + xtn_t* xtn = GET_XTN(awk); xtn->gbl_argc = qse_awk_addgbl (awk, QSE_T("ARGC")); xtn->gbl_argv = qse_awk_addgbl (awk, QSE_T("ARGV")); diff --git a/qse/lib/awk/val.c b/qse/lib/awk/val.c index 1e133cb9..654c2a95 100644 --- a/qse/lib/awk/val.c +++ b/qse/lib/awk/val.c @@ -217,7 +217,7 @@ qse_awk_val_t* qse_awk_rtx_makestrvalwithmbs (qse_awk_rtx_t* rtx, const qse_mcha qse_awk_val_t* v; qse_wcstr_t tmp; - tmp.ptr = qse_mbstowcsalldupwithcmgr(mbs, &tmp.len, rtx->awk->mmgr, rtx->awk->cmgr); + tmp.ptr = qse_mbstowcsalldupwithcmgr(mbs, &tmp.len, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); if (tmp.ptr == QSE_NULL) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -236,7 +236,7 @@ qse_awk_val_t* qse_awk_rtx_makestrvalwithwcs (qse_awk_rtx_t* rtx, const qse_wcha qse_awk_val_t* v; qse_mcstr_t tmp; - tmp.ptr = qse_wcstombsdupwithcmgr(wcs, &tmp.len, rtx->awk->mmgr, rtx->awk->cmgr); + tmp.ptr = qse_wcstombsdupwithcmgr(wcs, &tmp.len, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); if (tmp.ptr == QSE_NULL) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -266,7 +266,7 @@ qse_awk_val_t* qse_awk_rtx_makestrvalwithmxstr (qse_awk_rtx_t* rtx, const qse_mc qse_size_t mbslen; mbslen = mxstr->len; - tmp.ptr = qse_mbsntowcsalldupwithcmgr(mxstr->ptr, &mbslen, &tmp.len, rtx->awk->mmgr, rtx->awk->cmgr); + tmp.ptr = qse_mbsntowcsalldupwithcmgr(mxstr->ptr, &mbslen, &tmp.len, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); if (tmp.ptr == QSE_NULL) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -287,7 +287,7 @@ qse_awk_val_t* qse_awk_rtx_makestrvalwithwxstr (qse_awk_rtx_t* rtx, const qse_wc qse_size_t wcslen; wcslen = wxstr->len; - tmp.ptr = qse_wcsntombsdupwithcmgr(wxstr->ptr, wcslen, &tmp.len, rtx->awk->mmgr, rtx->awk->cmgr); + tmp.ptr = qse_wcsntombsdupwithcmgr(wxstr->ptr, wcslen, &tmp.len, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); if (tmp.ptr == QSE_NULL) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -500,7 +500,7 @@ qse_awk_val_t* qse_awk_rtx_makemapval (qse_awk_rtx_t* rtx) val->stat = 0; val->nstr = 0; val->fcb = 0; - val->map = qse_htb_open(run, 256, 70, free_mapval, same_mapval, run->awk->mmgr); + val->map = qse_htb_open(run, 256, 70, free_mapval, same_mapval, qse_awk_rtx_getmmgr(run)); if (val->map == QSE_NULL) { qse_awk_rtx_freemem (rtx, val); @@ -519,7 +519,7 @@ qse_awk_val_t* qse_awk_rtx_makemapval (qse_awk_rtx_t* rtx) 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) + if (qse_htb_init(val->map, qse_awk_rtx_getmmgr(rtx), 256, 70, QSE_SIZEOF(qse_char_t), 1) <= -1) { qse_awk_rtx_freemem (rtx, val); qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -1071,7 +1071,7 @@ static int mbs_to_str (qse_awk_rtx_t* rtx, const qse_mchar_t* str, qse_size_t st mbslen = str_len; wcslen = out->u.cplcpy.len; /*if (qse_mbsntowcsnallwithcmgr(str, &mbslen, out->u.cplcpy.ptr, &wcslen, qse_findcmgrbyid(QSE_CMGR_MB8)) <= -1 || wcslen >= out->u.cplcpy.len)*/ - if (qse_mbsntowcsnallwithcmgr(str, &mbslen, out->u.cplcpy.ptr, &wcslen, rtx->awk->cmgr) <= -1 || wcslen >= out->u.cplcpy.len) + if (qse_mbsntowcsnallwithcmgr(str, &mbslen, out->u.cplcpy.ptr, &wcslen, qse_awk_rtx_getcmgr(rtx)) <= -1 || wcslen >= out->u.cplcpy.len) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_EINVAL, QSE_NULL); /* TODO: change error code */ return -1; @@ -1089,8 +1089,8 @@ static int mbs_to_str (qse_awk_rtx_t* rtx, const qse_mchar_t* str, qse_size_t st qse_size_t mbslen, wcslen; mbslen = str_len; - /*tmp = qse_mbsntowcsalldupwithcmgr(str, &mbslen, &wcslen, rtx->awk->mmgr, qse_findcmgrbyid(QSE_CMGR_MB8));*/ - tmp = qse_mbsntowcsalldupwithcmgr(str, &mbslen, &wcslen, rtx->awk->mmgr, rtx->awk->cmgr); + /*tmp = qse_mbsntowcsalldupwithcmgr(str, &mbslen, &wcslen, qse_awk_rtx_getmmgr(rtx), qse_findcmgrbyid(QSE_CMGR_MB8));*/ + tmp = qse_mbsntowcsalldupwithcmgr(str, &mbslen, &wcslen, qse_awk_rtx_getmmgr(rtx), qse_awk_rtx_getcmgr(rtx)); if (!tmp) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -1108,7 +1108,7 @@ static int mbs_to_str (qse_awk_rtx_t* rtx, const qse_mchar_t* str, qse_size_t st qse_str_clear (out->u.strp); /*n = qse_str_ncatmbs(out->u.strp, str, str_len, qse_findcmgrbyid(QSE_CMGR_MB8));*/ - n = qse_str_ncatmbs(out->u.strp, str, str_len, rtx->awk->cmgr); + n = qse_str_ncatmbs(out->u.strp, str, str_len, qse_awk_rtx_getcmgr(rtx)); if (n == (qse_size_t)-1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -1122,7 +1122,7 @@ static int mbs_to_str (qse_awk_rtx_t* rtx, const qse_mchar_t* str, qse_size_t st qse_size_t n; /*n = qse_str_ncatmbs(out->u.strpcat, str, str_len, qse_findcmgrbyid(QSE_CMGR_MB8));*/ - n = qse_str_ncatmbs(out->u.strpcat, str, str_len, rtx->awk->cmgr); + n = qse_str_ncatmbs(out->u.strpcat, str, str_len, qse_awk_rtx_getcmgr(rtx)); if (n == (qse_size_t)-1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -1273,14 +1273,14 @@ static int val_flt_to_str (qse_awk_rtx_t* rtx, const qse_awk_val_flt_t* v, qse_a tmp_len = rtx->gbl.convfmt.len; } - if (qse_str_init(&buf, rtx->awk->mmgr, 256) <= -1) + if (qse_str_init(&buf, qse_awk_rtx_getmmgr(rtx), 256) <= -1) { qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); return -1; } buf_inited = 1; - if (qse_str_init(&fbu, rtx->awk->mmgr, 256) <= -1) + if (qse_str_init(&fbu, qse_awk_rtx_getmmgr(rtx), 256) <= -1) { qse_str_fini (&buf); qse_awk_rtx_seterrnum (rtx, QSE_AWK_ENOMEM, QSE_NULL); @@ -1498,7 +1498,7 @@ qse_mchar_t* qse_awk_rtx_valtombsdupwithcmgr (qse_awk_rtx_t* rtx, const qse_awk_ if (QSE_AWK_RTX_GETVALTYPE(rtx,v) == QSE_AWK_VAL_MBS) { - mbs = qse_mbsxdup(((qse_awk_val_mbs_t*)v)->val.ptr, ((qse_awk_val_mbs_t*)v)->val.len, rtx->awk->mmgr); + mbs = qse_mbsxdup(((qse_awk_val_mbs_t*)v)->val.ptr, ((qse_awk_val_mbs_t*)v)->val.len, qse_awk_rtx_getmmgr(rtx)); if (!mbs) { qse_awk_rtx_seterror (rtx, QSE_AWK_ENOMEM, QSE_NULL, QSE_NULL); @@ -1516,10 +1516,10 @@ qse_mchar_t* qse_awk_rtx_valtombsdupwithcmgr (qse_awk_rtx_t* rtx, const qse_awk_ if (!str0) return QSE_NULL; #if defined(QSE_CHAR_IS_MCHAR) - mbs = qse_strxdup(str0, len0, rtx->awk->mmgr); + mbs = qse_strxdup(str0, len0, qse_awk_rtx_getmmgr(rtx)); len1 = len0; #else - mbs = qse_wcsntombsdupwithcmgr(str0, len0, &len1, rtx->awk->mmgr, cmgr); + mbs = qse_wcsntombsdupwithcmgr(str0, len0, &len1, qse_awk_rtx_getmmgr(rtx), cmgr); #endif qse_awk_rtx_freevalstr (rtx, v, str0); if (!mbs) @@ -1546,7 +1546,7 @@ qse_wchar_t* qse_awk_rtx_valtowcsdupwithcmgr (qse_awk_rtx_t* rtx, const qse_awk_ { qse_size_t mbslen, wcslen; mbslen = ((qse_awk_val_mbs_t*)v)->val.len; - wcs = qse_mbsntowcsalldupwithcmgr(((qse_awk_val_mbs_t*)v)->val.ptr, &mbslen, &wcslen, rtx->awk->mmgr, cmgr); + wcs = qse_mbsntowcsalldupwithcmgr(((qse_awk_val_mbs_t*)v)->val.ptr, &mbslen, &wcslen, qse_awk_rtx_getmmgr(rtx), cmgr); if (!wcs) { qse_awk_rtx_seterror (rtx, QSE_AWK_ENOMEM, QSE_NULL, QSE_NULL); @@ -1562,9 +1562,9 @@ qse_wchar_t* qse_awk_rtx_valtowcsdupwithcmgr (qse_awk_rtx_t* rtx, const qse_awk_ #if defined(QSE_CHAR_IS_MCHAR) qse_size_t wcslen, mbslen; mbslen = ((qse_awk_val_str_t*)v)->val.len; - wcs = qse_mbsntowcsalldupwithcmgr(((qse_awk_val_str_t*)v)->val.ptr, &mbslen, &wcslen, rtx->awk->mmgr, cmgr); + wcs = qse_mbsntowcsalldupwithcmgr(((qse_awk_val_str_t*)v)->val.ptr, &mbslen, &wcslen, qse_awk_rtx_getmmgr(rtx), cmgr); #else - wcs = qse_strxdup(((qse_awk_val_str_t*)v)->val.ptr, ((qse_awk_val_str_t*)v)->val.len, rtx->awk->mmgr); + wcs = qse_strxdup(((qse_awk_val_str_t*)v)->val.ptr, ((qse_awk_val_str_t*)v)->val.len, qse_awk_rtx_getmmgr(rtx)); #endif if (!wcs) { @@ -1589,7 +1589,7 @@ qse_wchar_t* qse_awk_rtx_valtowcsdupwithcmgr (qse_awk_rtx_t* rtx, const qse_awk_ out.type = QSE_AWK_RTX_VALTOSTR_CPLDUP; if (qse_awk_rtx_valtostr(rtx, v, &out) <= -1) return QSE_NULL; - wcs = qse_mbsntowcsalldupwithcmgr(out.u.cpldup.ptr, &out.u.cpldup.len, &wcslen, rtx->awk->mmgr, cmgr); + wcs = qse_mbsntowcsalldupwithcmgr(out.u.cpldup.ptr, &out.u.cpldup.len, &wcslen, qse_awk_rtx_getmmgr(rtx), cmgr); qse_awk_rtx_freemem (rtx, out.u.cpldup.ptr); if (!wcs) { diff --git a/qse/samples/awk/awk03.c b/qse/samples/awk/awk03.c index e1ef8b8f..9a6b1217 100644 --- a/qse/samples/awk/awk03.c +++ b/qse/samples/awk/awk03.c @@ -30,7 +30,7 @@ static qse_ssize_t handle_console ( qse_char_t* data, qse_size_t count) { - console_t* con = qse_awk_rtx_getxtnstd (rtx); + console_t* con = qse_awk_rtx_getxtn(rtx); /* this function is called separately for the console input and console * output. however, since i don't maintain underlying resources like @@ -129,7 +129,7 @@ static int awk_main (int argc, qse_char_t* argv[]) } /* get the pointer to the extension area. */ - con = (console_t*)qse_awk_rtx_getxtnstd (rtx); + con = (console_t*)qse_awk_rtx_getxtn(rtx); /* initialize fields that require non-zero values. * the entire extension area was initialized to zeros * when it was created. */ diff --git a/qse/samples/awk/awk08.c b/qse/samples/awk/awk08.c index 5e6ad818..d3efedb8 100644 --- a/qse/samples/awk/awk08.c +++ b/qse/samples/awk/awk08.c @@ -26,7 +26,7 @@ static int awk_main (int argc, qse_char_t* argv[]) ginfo_t* ginfo; /* create an awk object */ - awk = qse_awk_openstd (QSE_SIZEOF(*ginfo), QSE_NULL); + awk = qse_awk_openstd(QSE_SIZEOF(*ginfo), QSE_NULL); if (awk == QSE_NULL) { qse_fprintf (QSE_STDERR, QSE_T("ERROR: cannot open awk\n")); @@ -36,7 +36,7 @@ static int awk_main (int argc, qse_char_t* argv[]) /* add global variables G1, G2, and G3. store the IDs to the extension * area. the extension area is used for demonstration. there is no special * need to use it when adding global variables. */ - ginfo = qse_awk_getxtnstd (awk); + ginfo = qse_awk_getxtn(awk); for (i = 0; i < QSE_COUNTOF(ginfo->g); i++) { qse_char_t name[] = QSE_T("GX"); diff --git a/qse/samples/awk/awk11.c b/qse/samples/awk/awk11.c index 056c62a7..ee02eb2f 100644 --- a/qse/samples/awk/awk11.c +++ b/qse/samples/awk/awk11.c @@ -39,7 +39,8 @@ static qse_ssize_t new_pipe_handler ( qse_char_t* data, qse_size_t size) { struct rtx_xtn_t* xtn; - xtn = qse_awk_rtx_getxtnstd (rtx); + + xtn = qse_awk_rtx_getxtn(rtx); if (cmd == QSE_AWK_RIO_OPEN) qse_fprintf (QSE_STDERR, QSE_T("LOG: Executing [%s] for piping\n"), riod->name); @@ -55,7 +56,7 @@ static void extend_pipe_handler (qse_awk_rtx_t* rtx) struct rtx_xtn_t* xtn; qse_awk_rio_t rio; - xtn = qse_awk_rtx_getxtnstd (rtx); + xtn = qse_awk_rtx_getxtn(rtx); /* get the previous handler functions */ qse_awk_rtx_getrio (rtx, &rio);