From 6d357fe1fef5a7b6a416517a036cb82220cd3e4e Mon Sep 17 00:00:00 2001 From: hyung-hwan Date: Fri, 21 Jun 2019 12:43:50 +0000 Subject: [PATCH] added the _instsize field to mio_t and revised mio_getxtn() using the new field --- mio/lib/err.c | 4 ++-- mio/lib/fmt.c | 4 ++-- mio/lib/mio.c | 15 ++++++++------- mio/lib/mio.h | 21 +++++++++++---------- mio/lib/utl.c | 8 ++++---- 5 files changed, 27 insertions(+), 25 deletions(-) diff --git a/mio/lib/err.c b/mio/lib/err.c index c1a95ad..073a8db 100644 --- a/mio/lib/err.c +++ b/mio/lib/err.c @@ -117,7 +117,7 @@ static int err_bcs (mio_fmtout_t* fmtout, const mio_bch_t* ptr, mio_oow_t len) #if defined(MIO_OOCH_IS_UCH) if (max <= 0) return 1; - mio_conv_bchars_to_uchars_with_cmgr (ptr, &len, &mio->errmsg.buf[mio->errmsg.len], &max, mio->cmgr, 1); + mio_conv_bchars_to_uchars_with_cmgr (ptr, &len, &mio->errmsg.buf[mio->errmsg.len], &max, mio_getcmgr(mio), 1); mio->errmsg.len += max; #else if (len > max) len = max; @@ -145,7 +145,7 @@ static int err_ucs (mio_fmtout_t* fmtout, const mio_uch_t* ptr, mio_oow_t len) mio->errmsg.len += len; #else if (max <= 0) return 1; - mio_conv_uchars_to_bchars_with_cmgr (ptr, &len, &mio->errmsg.buf[mio->errmsg.len], &max, mio->cmgr); + mio_conv_uchars_to_bchars_with_cmgr (ptr, &len, &mio->errmsg.buf[mio->errmsg.len], &max, mio_getcmgr(mio)); mio->errmsg.len += max; #endif mio->errmsg.buf[mio->errmsg.len] = '\0'; diff --git a/mio/lib/fmt.c b/mio/lib/fmt.c index bbb1d51..f67c3f0 100644 --- a/mio/lib/fmt.c +++ b/mio/lib/fmt.c @@ -1478,7 +1478,7 @@ static int log_ucs (mio_fmtout_t* fmtout, const mio_uch_t* ptr, mio_oow_t len) { len = rem; bcslen = MIO_COUNTOF(bcs); - mio_conv_uchars_to_bchars_with_cmgr(ptr, &len, bcs, &bcslen, mio->cmgr); + mio_conv_uchars_to_bchars_with_cmgr(ptr, &len, bcs, &bcslen, mio_getcmgr(mio)); log_bcs(fmtout, bcs, bcslen); rem -= len; ptr += len; @@ -1502,7 +1502,7 @@ static int log_bcs (mio_fmtout_t* fmtout, const mio_bch_t* ptr, mio_oow_t len) { len = rem; ucslen = MIO_COUNTOF(ucs); - mio_conv_bchars_to_uchars_with_cmgr(ptr, &len, ucs, &ucslen, mio->cmgr, 1); + mio_conv_bchars_to_uchars_with_cmgr(ptr, &len, ucs, &ucslen, mio_getcmgr(mio), 1); log_ucs(fmtout, ucs, ucslen); rem -= len; ptr += len; diff --git a/mio/lib/mio.c b/mio/lib/mio.c index b93c0eb..778df74 100644 --- a/mio/lib/mio.c +++ b/mio/lib/mio.c @@ -84,7 +84,7 @@ mio_t* mio_open (mio_mmgr_t* mmgr, mio_oow_t xtnsize, mio_cmgr_t* cmgr, mio_oow_ void mio_close (mio_t* mio) { mio_fini (mio); - MIO_MMGR_FREE (mio->mmgr, mio); + MIO_MMGR_FREE (mio->_mmgr, mio); } int mio_init (mio_t* mio, mio_mmgr_t* mmgr, mio_cmgr_t* cmgr, mio_oow_t tmrcapa) @@ -92,8 +92,9 @@ int mio_init (mio_t* mio, mio_mmgr_t* mmgr, mio_cmgr_t* cmgr, mio_oow_t tmrcapa) int sys_inited = 0; MIO_MEMSET (mio, 0, MIO_SIZEOF(*mio)); - mio->mmgr = mmgr; - mio->cmgr = cmgr; + mio->_instsize = MIO_SIZEOF(*mio); + mio->_mmgr = mmgr; + mio->_cmgr = cmgr; /* initialize data for logging support */ mio->option.log_mask = MIO_LOG_ALL_LEVELS | MIO_LOG_ALL_TYPES; @@ -1299,7 +1300,7 @@ void mio_gettime (mio_t* mio, mio_ntime_t* now) void* mio_allocmem (mio_t* mio, mio_oow_t size) { void* ptr; - ptr = MIO_MMGR_ALLOC (mio->mmgr, size); + ptr = MIO_MMGR_ALLOC (mio->_mmgr, size); if (!ptr) mio_seterrnum (mio, MIO_ESYSMEM); return ptr; } @@ -1307,7 +1308,7 @@ void* mio_allocmem (mio_t* mio, mio_oow_t size) void* mio_callocmem (mio_t* mio, mio_oow_t size) { void* ptr; - ptr = MIO_MMGR_ALLOC (mio->mmgr, size); + ptr = MIO_MMGR_ALLOC (mio->_mmgr, size); if (!ptr) mio_seterrnum (mio, MIO_ESYSMEM); else MIO_MEMSET (ptr, 0, size); return ptr; @@ -1315,12 +1316,12 @@ void* mio_callocmem (mio_t* mio, mio_oow_t size) void* mio_reallocmem (mio_t* mio, void* ptr, mio_oow_t size) { - ptr = MIO_MMGR_REALLOC (mio->mmgr, ptr, size); + ptr = MIO_MMGR_REALLOC (mio->_mmgr, ptr, size); if (!ptr) mio_seterrnum (mio, MIO_ESYSMEM); return ptr; } void mio_freemem (mio_t* mio, void* ptr) { - MIO_MMGR_FREE (mio->mmgr, ptr); + MIO_MMGR_FREE (mio->_mmgr, ptr); } diff --git a/mio/lib/mio.h b/mio/lib/mio.h index 7f7f8af..25ab387 100644 --- a/mio/lib/mio.h +++ b/mio/lib/mio.h @@ -510,8 +510,9 @@ typedef struct mio_sys_t mio_sys_t; struct mio_t { - mio_mmgr_t* mmgr; - mio_cmgr_t* cmgr; + mio_oow_t _instsize; + mio_mmgr_t* _mmgr; + mio_cmgr_t* _cmgr; mio_errnum_t errnum; struct { @@ -638,19 +639,19 @@ MIO_EXPORT int mio_setoption ( ); #if defined(MIO_HAVE_INLINE) - static MIO_INLINE mio_mmgr_t* mio_getmmgr (mio_t* mio) { return mio->mmgr; } - static MIO_INLINE void* mio_getxtn (mio_t* mio) { return (void*)(mio + 1); } + static MIO_INLINE mio_mmgr_t* mio_getmmgr (mio_t* mio) { return mio->_mmgr; } + static MIO_INLINE void* mio_getxtn (mio_t* mio) { return (void*)((mio_uint8_t*)mio + mio->_instsize); } - static MIO_INLINE mio_cmgr_t* mio_getcmgr (mio_t* mio) { return mio->cmgr; } - static MIO_INLINE void mio_setcmgr (mio_t* mio, mio_cmgr_t* cmgr) { mio->cmgr = cmgr; } + static MIO_INLINE mio_cmgr_t* mio_getcmgr (mio_t* mio) { return mio->_cmgr; } + static MIO_INLINE void mio_setcmgr (mio_t* mio, mio_cmgr_t* cmgr) { mio->_cmgr = cmgr; } static MIO_INLINE mio_errnum_t mio_geterrnum (mio_t* mio) { return mio->errnum; } #else -# define mio_getmmgr(mio) (((mio_t*)(mio))->mmgr) -# define mio_getxtn(mio) ((void*)((mio_t*)(mio) + 1)) +# define mio_getmmgr(mio) (((mio_t*)(mio))->_mmgr) +# define mio_getxtn(mio) ((void*)((mio_uint8_t*)mio + ((mio_t*)mio)->_instsize)) -# define mio_getcmgr(mio) (((mio_t*)(mio))->cmgr) -# define mio_setcmgr(mio,mgr) (((mio_t*)(mio))->cmgr = (mgr)) +# define mio_getcmgr(mio) (((mio_t*)(mio))->_cmgr) +# define mio_setcmgr(mio,cmgr) (((mio_t*)(mio))->_cmgr = (cmgr)) # define mio_geterrnum(mio) (((mio_t*)(mio))->errnum) #endif diff --git a/mio/lib/utl.c b/mio/lib/utl.c index 34b424d..ab8521c 100644 --- a/mio/lib/utl.c +++ b/mio/lib/utl.c @@ -1030,7 +1030,7 @@ int mio_convbtouchars (mio_t* mio, const mio_bch_t* bcs, mio_oow_t* bcslen, mio_ /* length bound */ int n; - n = mio_conv_bchars_to_uchars_with_cmgr(bcs, bcslen, ucs, ucslen, mio->cmgr, 0); + n = mio_conv_bchars_to_uchars_with_cmgr(bcs, bcslen, ucs, ucslen, mio_getcmgr(mio), 0); if (n <= -1) { @@ -1046,7 +1046,7 @@ int mio_convutobchars (mio_t* mio, const mio_uch_t* ucs, mio_oow_t* ucslen, mio_ /* length bound */ int n; - n = mio_conv_uchars_to_bchars_with_cmgr(ucs, ucslen, bcs, bcslen, mio->cmgr); + n = mio_conv_uchars_to_bchars_with_cmgr(ucs, ucslen, bcs, bcslen, mio_getcmgr(mio)); if (n <= -1) { @@ -1061,7 +1061,7 @@ int mio_convbtoucstr (mio_t* mio, const mio_bch_t* bcs, mio_oow_t* bcslen, mio_u /* null-terminated. */ int n; - n = mio_conv_bcstr_to_ucstr_with_cmgr(bcs, bcslen, ucs, ucslen, mio->cmgr, 0); + n = mio_conv_bcstr_to_ucstr_with_cmgr(bcs, bcslen, ucs, ucslen, mio_getcmgr(mio), 0); if (n <= -1) { @@ -1076,7 +1076,7 @@ int mio_convutobcstr (mio_t* mio, const mio_uch_t* ucs, mio_oow_t* ucslen, mio_b /* null-terminated */ int n; - n = mio_conv_ucstr_to_bcstr_with_cmgr(ucs, ucslen, bcs, bcslen, mio->cmgr); + n = mio_conv_ucstr_to_bcstr_with_cmgr(ucs, ucslen, bcs, bcslen, mio_getcmgr(mio)); if (n <= -1) {