working on mod-ffi

This commit is contained in:
2020-12-22 17:53:51 +00:00
parent 5b6347b0a9
commit 12e50d46d7
10 changed files with 102 additions and 143 deletions

View File

@ -48,7 +48,7 @@ void* hawk_gem_reallocmem (hawk_gem_t* gem, void* ptr, hawk_oow_t size)
return nptr;
}
void* hawk_gem_callocmem_noerr (hawk_gem_t* gem, hawk_oow_t size)
void* hawk_gem_callocmem_noseterr (hawk_gem_t* gem, hawk_oow_t size)
{
void* ptr = HAWK_MMGR_ALLOC(gem->mmgr, size);
if (ptr) HAWK_MEMSET (ptr, 0, size);

View File

@ -82,11 +82,11 @@ extern "C" {
#endif
#if defined(HAWK_HAVE_INLINE)
static HAWK_INLINE void* hawk_gem_allocmem_noerr (hawk_gem_t* gem, hawk_oow_t size) { return HAWK_MMGR_ALLOC(gem->mmgr, size); }
static HAWK_INLINE void* hawk_gem_reallocmem_noerr (hawk_gem_t* gem, void* ptr, hawk_oow_t size) { return HAWK_MMGR_REALLOC(gem->mmgr, ptr, size); }
static HAWK_INLINE void* hawk_gem_allocmem_noseterr (hawk_gem_t* gem, hawk_oow_t size) { return HAWK_MMGR_ALLOC(gem->mmgr, size); }
static HAWK_INLINE void* hawk_gem_reallocmem_noseterr (hawk_gem_t* gem, void* ptr, hawk_oow_t size) { return HAWK_MMGR_REALLOC(gem->mmgr, ptr, size); }
#else
#define hawk_gem_allocmem_noerr(gem, size) (HAWK_MMGR_ALLOC((gem)->mmgr, size))
#define hawk_gem_reallocmem_noerr(gem, ptr, size) (HAWK_MMGR_REALLOC((gem)->mmgr, ptr, size))
#define hawk_gem_allocmem_noseterr(gem, size) (HAWK_MMGR_ALLOC((gem)->mmgr, size))
#define hawk_gem_reallocmem_noseterr(gem, ptr, size) (HAWK_MMGR_REALLOC((gem)->mmgr, ptr, size))
#endif
HAWK_EXPORT void* hawk_gem_allocmem (
@ -112,7 +112,7 @@ static HAWK_INLINE void hawk_gem_freemem (hawk_gem_t* gem, void* ptr) { HAWK_MMG
#endif
void* hawk_gem_callocmem_noerr (
void* hawk_gem_callocmem_noseterr (
hawk_gem_t* gem,
hawk_oow_t size
);

View File

@ -613,7 +613,7 @@ int hawk_buildrex (hawk_t* hawk, const hawk_ooch_t* ptn, hawk_oow_t len, hawk_tr
/* ------------------------------------------------------------------------ */
int hawk_findmodsymfnc_noerr (hawk_t* hawk, hawk_mod_fnc_tab_t* fnctab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
int hawk_findmodsymfnc_noseterr (hawk_t* hawk, hawk_mod_fnc_tab_t* fnctab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
int n;
@ -637,7 +637,7 @@ int hawk_findmodsymfnc_noerr (hawk_t* hawk, hawk_mod_fnc_tab_t* fnctab, hawk_oow
}
int hawk_findmodsymint_noerr (hawk_t* hawk, hawk_mod_int_tab_t* inttab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
int hawk_findmodsymint_noseterr (hawk_t* hawk, hawk_mod_int_tab_t* inttab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
int n;
@ -660,7 +660,7 @@ int hawk_findmodsymint_noerr (hawk_t* hawk, hawk_mod_int_tab_t* inttab, hawk_oow
return -1;
}
int hawk_findmodsymflt_noerr (hawk_t* hawk, hawk_mod_flt_tab_t* flttab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
int hawk_findmodsymflt_noseterr (hawk_t* hawk, hawk_mod_flt_tab_t* flttab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
int n;
@ -685,21 +685,21 @@ int hawk_findmodsymflt_noerr (hawk_t* hawk, hawk_mod_flt_tab_t* flttab, hawk_oow
int hawk_findmodsymfnc (hawk_t* hawk, hawk_mod_fnc_tab_t* fnctab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
int n = hawk_findmodsymfnc_noerr(hawk, fnctab, count, name, sym);
int n = hawk_findmodsymfnc_noseterr(hawk, fnctab, count, name, sym);
if (n <= -1) hawk_seterrfmt (hawk, HAWK_NULL, HAWK_ENOENT, HAWK_T("'%js' not found"), name);
return n;
}
int hawk_findmodsymint (hawk_t* hawk, hawk_mod_int_tab_t* inttab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
int n = hawk_findmodsymint_noerr(hawk, inttab, count, name, sym);
int n = hawk_findmodsymint_noseterr(hawk, inttab, count, name, sym);
if (n <= -1) hawk_seterrfmt (hawk, HAWK_NULL, HAWK_ENOENT, HAWK_T("'%js' not found"), name);
return n;
}
int hawk_findmodsymflt (hawk_t* hawk, hawk_mod_flt_tab_t* flttab, hawk_oow_t count, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
int n = hawk_findmodsymflt_noerr(hawk, flttab, count, name, sym);
int n = hawk_findmodsymflt_noseterr(hawk, flttab, count, name, sym);
if (n <= -1) hawk_seterrfmt (hawk, HAWK_NULL, HAWK_ENOENT, HAWK_T("'%js' not found"), name);
return n;
}

View File

@ -1928,7 +1928,7 @@ HAWK_EXPORT int hawk_isvalidident (
/* ----------------------------------------------------------------------- */
HAWK_EXPORT int hawk_findmodsymfnc_noerr (
HAWK_EXPORT int hawk_findmodsymfnc_noseterr (
hawk_t* hawk,
hawk_mod_fnc_tab_t* fnctab,
hawk_oow_t count,
@ -1936,7 +1936,7 @@ HAWK_EXPORT int hawk_findmodsymfnc_noerr (
hawk_mod_sym_t* sym
);
HAWK_EXPORT int hawk_findmodsymint_noerr (
HAWK_EXPORT int hawk_findmodsymint_noseterr (
hawk_t* hawk,
hawk_mod_int_tab_t* inttab,
hawk_oow_t count,
@ -1944,7 +1944,7 @@ HAWK_EXPORT int hawk_findmodsymint_noerr (
hawk_mod_sym_t* sym
);
HAWK_EXPORT int hawk_findmodsymflt_noerr (
HAWK_EXPORT int hawk_findmodsymflt_noseterr (
hawk_t* hawk,
hawk_mod_flt_tab_t* flttab,
hawk_oow_t count,

View File

@ -422,7 +422,7 @@ static hawk_mod_int_tab_t inttab[] =
static int query (hawk_mod_t* mod, hawk_t* hawk, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
if (hawk_findmodsymfnc_noerr(hawk, fnctab, HAWK_COUNTOF(fnctab), name, sym) >= 0) return 0;
if (hawk_findmodsymfnc_noseterr(hawk, fnctab, HAWK_COUNTOF(fnctab), name, sym) >= 0) return 0;
return hawk_findmodsymint(hawk, inttab, HAWK_COUNTOF(inttab), name, sym);
}

View File

@ -797,7 +797,7 @@ static hawk_mod_int_tab_t inttab[] =
static int query (hawk_mod_t* mod, hawk_t* hawk, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
if (hawk_findmodsymfnc_noerr(hawk, fnctab, HAWK_COUNTOF(fnctab), name, sym) >= 0) return 0;
if (hawk_findmodsymfnc_noseterr(hawk, fnctab, HAWK_COUNTOF(fnctab), name, sym) >= 0) return 0;
return hawk_findmodsymint(hawk, inttab, HAWK_COUNTOF(inttab), name, sym);
}

View File

@ -6208,7 +6208,7 @@ static hawk_mod_int_tab_t inttab[] =
static int query (hawk_mod_t* mod, hawk_t* hawk, const hawk_ooch_t* name, hawk_mod_sym_t* sym)
{
if (hawk_findmodsymfnc_noerr(hawk, fnctab, HAWK_COUNTOF(fnctab), name, sym) >= 0) return 0;
if (hawk_findmodsymfnc_noseterr(hawk, fnctab, HAWK_COUNTOF(fnctab), name, sym) >= 0) return 0;
return hawk_findmodsymint(hawk, inttab, HAWK_COUNTOF(inttab), name, sym);
}

View File

@ -218,13 +218,13 @@ typedef hawk_ooci_t tre_cint_t;
/* use the noerr version becuase various tre functions return
/* use the noseterr version because various tre functions return
* REG_ESPACE upon memory shortage and the wrapper functions
* uses the returned code to set the error number on the
* hawk_tre_t wrapper object */
#define xmalloc(gem,size) hawk_gem_allocmem_noerr(gem,size)
#define xrealloc(gem,ptr,new_size) hawk_gem_reallocmem_noerr(gem, ptr, new_size)
#define xcalloc(gem,nmemb,size) hawk_gem_callocmem_noerr(gem, (nmemb) * (size))
#define xmalloc(gem,size) hawk_gem_allocmem_noseterr(gem,size)
#define xrealloc(gem,ptr,new_size) hawk_gem_reallocmem_noseterr(gem, ptr, new_size)
#define xcalloc(gem,nmemb,size) hawk_gem_callocmem_noseterr(gem, (nmemb) * (size))
#define xfree(gem,ptr) hawk_gem_freemem(gem,ptr)
/* tre-ast.h */