added the _instsize field to mio_t and revised mio_getxtn() using the new field

This commit is contained in:
hyung-hwan 2019-06-21 12:43:50 +00:00
parent 86c1d9ebe6
commit 6d357fe1fe
5 changed files with 27 additions and 25 deletions

View File

@ -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';

View File

@ -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;

View File

@ -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);
}

View File

@ -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

View File

@ -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)
{