added hawk::function_exists()
This commit is contained in:
parent
a8afcca04e
commit
178c83724b
@ -112,6 +112,30 @@ static int fnc_call (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* hawk::function_exists("xxxx"); */
|
||||||
|
static int fnc_function_exists (hawk_rtx_t* rtx, const hawk_fnc_info_t* fi)
|
||||||
|
{
|
||||||
|
hawk_val_t* a0;
|
||||||
|
hawk_ooch_t* str;
|
||||||
|
hawk_oow_t len;
|
||||||
|
int rx;
|
||||||
|
|
||||||
|
a0 = hawk_rtx_getarg(rtx, 0);
|
||||||
|
str = hawk_rtx_getvaloocstr(rtx, a0, &len);
|
||||||
|
if (HAWK_UNLIKELY(!str))
|
||||||
|
{
|
||||||
|
rx = 0;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
rx = (hawk_rtx_findfunwithoocstr(rtx, str) != HAWK_NULL);
|
||||||
|
hawk_rtx_freevaloocstr (rtx, a0, str);
|
||||||
|
}
|
||||||
|
|
||||||
|
hawk_rtx_setretval (rtx, hawk_rtx_makeintval(rtx, rx));
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
hawk::gc();
|
hawk::gc();
|
||||||
hawk::gc_get_threshold(gen)
|
hawk::gc_get_threshold(gen)
|
||||||
@ -193,6 +217,7 @@ static fnctab_t fnctab[] =
|
|||||||
{
|
{
|
||||||
/* keep this table sorted for binary search in query(). */
|
/* keep this table sorted for binary search in query(). */
|
||||||
{ HAWK_T("call"), { { 1, A_MAX, HAWK_T("vR") }, fnc_call, 0 } },
|
{ HAWK_T("call"), { { 1, A_MAX, HAWK_T("vR") }, fnc_call, 0 } },
|
||||||
|
{ HAWK_T("function_exists"), { { 1, 1, HAWK_NULL }, fnc_function_exists, 0 } },
|
||||||
{ HAWK_T("gc"), { { 0, 1, HAWK_NULL }, fnc_gc, 0 } },
|
{ HAWK_T("gc"), { { 0, 1, HAWK_NULL }, fnc_gc, 0 } },
|
||||||
{ HAWK_T("gc_get_threshold"), { { 1, 1, HAWK_NULL }, fnc_gc_get_threshold, 0 } },
|
{ HAWK_T("gc_get_threshold"), { { 1, 1, HAWK_NULL }, fnc_gc_get_threshold, 0 } },
|
||||||
{ HAWK_T("gc_set_threshold"), { { 2, 2, HAWK_NULL }, fnc_gc_set_threshold, 0 } }
|
{ HAWK_T("gc_set_threshold"), { { 2, 2, HAWK_NULL }, fnc_gc_set_threshold, 0 } }
|
||||||
|
Loading…
Reference in New Issue
Block a user