fixed the assertion failure that arose when a built-in global variable is set with -v.
All checks were successful
continuous-integration/drone/push Build is passing

changed multiple open functions to accept hawk_errinfo_t* instead of hawk_errnum_t*
This commit is contained in:
2025-10-01 13:55:02 +09:00
parent 5d7ec0cc1f
commit 99959cf35d
27 changed files with 344 additions and 227 deletions

View File

@ -75,7 +75,7 @@ static void clear_token (hawk_tok_t* tok)
tok->loc.colm = 0;
}
hawk_t* hawk_open (hawk_mmgr_t* mmgr, hawk_oow_t xtnsize, hawk_cmgr_t* cmgr, const hawk_prm_t* prm, hawk_errnum_t* errnum)
hawk_t* hawk_open (hawk_mmgr_t* mmgr, hawk_oow_t xtnsize, hawk_cmgr_t* cmgr, const hawk_prm_t* prm, hawk_errinf_t* errinf)
{
hawk_t* hawk;
@ -87,13 +87,18 @@ hawk_t* hawk_open (hawk_mmgr_t* mmgr, hawk_oow_t xtnsize, hawk_cmgr_t* cmgr, con
xret = hawk_init(hawk, mmgr, cmgr, prm);
if (xret <= -1)
{
if (errnum) *errnum = hawk_geterrnum(hawk);
HAWK_MMGR_FREE (mmgr, hawk);
if (errinf) hawk_geterrinf(hawk, errinf);
HAWK_MMGR_FREE(mmgr, hawk);
hawk = HAWK_NULL;
}
else HAWK_MEMSET (hawk + 1, 0, xtnsize);
else HAWK_MEMSET(hawk + 1, 0, xtnsize);
}
else if (errinf)
{
HAWK_MEMSET(errinf, 0, HAWK_SIZEOF(*errinf));
errinf->num = HAWK_ENOMEM;
hawk_copy_oocstr(errinf->msg, HAWK_COUNTOF(errinf->msg), hawk_dfl_errstr(errinf->num));
}
else if (errnum) *errnum = HAWK_ENOMEM;
return hawk;
}
@ -101,7 +106,7 @@ hawk_t* hawk_open (hawk_mmgr_t* mmgr, hawk_oow_t xtnsize, hawk_cmgr_t* cmgr, con
void hawk_close (hawk_t* hawk)
{
hawk_fini (hawk);
HAWK_MMGR_FREE (hawk_getmmgr(hawk), hawk);
HAWK_MMGR_FREE(hawk_getmmgr(hawk), hawk);
}
int hawk_init (hawk_t* hawk, hawk_mmgr_t* mmgr, hawk_cmgr_t* cmgr, const hawk_prm_t* prm)