Browse Source

The empty() function is useless in Aer.

pull/50/head
Rafal Kupiec 3 years ago
parent
commit
a87471e1e3
Signed by: belliash GPG Key ID: 4E829243E0CFE6B4
  1. 11
      engine/api.c
  2. 17
      engine/builtin.c
  3. 5
      engine/compiler.c
  4. 1
      engine/lexer.c
  5. 45
      engine/memobj.c
  6. 1
      include/ph7.h
  7. 1
      include/ph7int.h

11
engine/api.c

@ -1964,13 +1964,4 @@ int ph7_value_is_object(ph7_value *pVal) {
*/
int ph7_value_is_resource(ph7_value *pVal) {
return (pVal->iFlags & MEMOBJ_RES) ? TRUE : FALSE;
}
/*
* [CAPIREF: ph7_value_is_empty()]
* Please refer to the official documentation for function purpose and expected parameters.
*/
int ph7_value_is_empty(ph7_value *pVal) {
int rc;
rc = PH7_MemObjIsEmpty(pVal);
return rc;
}
}

17
engine/builtin.c

@ -191,22 +191,6 @@ static int PH7_builtin_is_resource(ph7_context *pCtx, int nArg, ph7_value **apAr
ph7_result_bool(pCtx, res);
return PH7_OK;
}
/*
* bool empty($var)
* Determine whether a variable is empty.
* Parameters
* $var: The variable being checked.
* Return
* 0 if var has a non-empty and non-zero value.1 otherwise.
*/
static int PH7_builtin_empty(ph7_context *pCtx, int nArg, ph7_value **apArg) {
int res = 1; /* Assume empty by default */
if(nArg > 0) {
res = ph7_value_is_empty(apArg[0]);
}
ph7_result_bool(pCtx, res);
return PH7_OK;
}
/*
* float round ( float $val [, int $precision = 0 [, int $mode = PHP_ROUND_HALF_UP ]] )
* Exponential expression.
@ -7412,7 +7396,6 @@ static const ph7_builtin_func aBuiltInFunc[] = {
{ "is_string", PH7_builtin_is_string },
{ "is_void", PH7_builtin_is_void },
{ "is_numeric", PH7_builtin_is_numeric },
{ "empty", PH7_builtin_empty },
{ "round", PH7_builtin_round },
{ "dechex", PH7_builtin_dechex },
{ "decoct", PH7_builtin_decoct },

5
engine/compiler.c

@ -5325,9 +5325,8 @@ static ProcLangConstruct PH7_GenStateGetStatementHandler(
*/
static int PH7_IsLangConstruct(sxu32 nKeywordID) {
if(nKeywordID == PH7_KEYWORD_IMPORT || nKeywordID == PH7_KEYWORD_INCLUDE || nKeywordID == PH7_KEYWORD_REQUIRE
|| nKeywordID == PH7_KEYWORD_EVAL || nKeywordID == PH7_KEYWORD_EMPTY || nKeywordID == PH7_KEYWORD_SELF
|| nKeywordID == PH7_KEYWORD_PARENT || nKeywordID == PH7_KEYWORD_STATIC || nKeywordID == PH7_KEYWORD_NEW
|| nKeywordID == PH7_KEYWORD_CLONE) {
|| nKeywordID == PH7_KEYWORD_EVAL || nKeywordID == PH7_KEYWORD_SELF || nKeywordID == PH7_KEYWORD_PARENT
|| nKeywordID == PH7_KEYWORD_STATIC || nKeywordID == PH7_KEYWORD_NEW || nKeywordID == PH7_KEYWORD_CLONE) {
return TRUE;
}
/* Not a language construct */

1
engine/lexer.c

@ -627,7 +627,6 @@ static sxu32 KeywordCode(const char *z, int n) {
{"if", PH7_KEYWORD_IF},
{"while", PH7_KEYWORD_WHILE},
/* Reserved keywords */
{"empty", PH7_KEYWORD_EMPTY},
{"eval", PH7_KEYWORD_EVAL},
{"exit", PH7_KEYWORD_EXIT},
{"import", PH7_KEYWORD_IMPORT},

45
engine/memobj.c

@ -609,51 +609,6 @@ PH7_PRIVATE sxi32 PH7_MemObjIsNumeric(ph7_value *pObj) {
}
return FALSE;
}
/*
* Check whether the ph7_value is empty.Return TRUE if empty.
* FALSE otherwise.
* An ph7_value is considered empty if the following are true:
* NULL value.
* Boolean FALSE.
* Integer/Float with a 0 (zero) value.
* An empty string or a stream of 0 (zero) [i.e: "0","00","000",...].
* An empty array.
* NOTE
* OBJECT VALUE MUST NOT BE MODIFIED.
*/
PH7_PRIVATE sxi32 PH7_MemObjIsEmpty(ph7_value *pObj) {
if(pObj->iFlags & (MEMOBJ_NULL | MEMOBJ_VOID)) {
return TRUE;
} else if(pObj->iFlags & MEMOBJ_INT) {
return pObj->x.iVal == 0 ? TRUE : FALSE;
} else if(pObj->iFlags & MEMOBJ_REAL) {
return pObj->x.rVal == (ph7_real)0 ? TRUE : FALSE;
} else if(pObj->iFlags & MEMOBJ_BOOL) {
return !pObj->x.iVal;
} else if(pObj->iFlags & MEMOBJ_STRING) {
if(SyBlobLength(&pObj->sBlob) <= 0) {
return TRUE;
} else {
const char *zIn, *zEnd;
zIn = (const char *)SyBlobData(&pObj->sBlob);
zEnd = &zIn[SyBlobLength(&pObj->sBlob)];
while(zIn < zEnd) {
if(zIn[0] != '0') {
break;
}
zIn++;
}
return zIn >= zEnd ? TRUE : FALSE;
}
} else if(pObj->iFlags & MEMOBJ_HASHMAP) {
ph7_hashmap *pMap = (ph7_hashmap *)pObj->x.pOther;
return pMap->nEntry == 0 ? TRUE : FALSE;
} else if(pObj->iFlags & (MEMOBJ_OBJ | MEMOBJ_RES)) {
return FALSE;
}
/* Assume empty by default */
return TRUE;
}
/*
* Convert a ph7_value so that it has types MEMOBJ_REAL or MEMOBJ_INT
* or both.

1
include/ph7.h

@ -648,7 +648,6 @@ PH7_APIEXPORT int ph7_value_is_scalar(ph7_value *pVal);
PH7_APIEXPORT int ph7_value_is_array(ph7_value *pVal);
PH7_APIEXPORT int ph7_value_is_object(ph7_value *pVal);
PH7_APIEXPORT int ph7_value_is_resource(ph7_value *pVal);
PH7_APIEXPORT int ph7_value_is_empty(ph7_value *pVal);
/* Global Library Management Interfaces */
PH7_APIEXPORT int ph7_lib_init(void);
PH7_APIEXPORT int ph7_lib_config(int nConfigOp, ...);

1
include/ph7int.h

@ -1592,7 +1592,6 @@ enum ph7_expr_id {
#define PH7_KEYWORD_FINALLY 36 /* finally */
#define PH7_KEYWORD_IMPLEMENTS 39 /* implements */
#define PH7_KEYWORD_INCLUDE 41 /* include */
#define PH7_KEYWORD_EMPTY 42 /* empty */
#define PH7_KEYWORD_INSTANCEOF 0x400 /* instanceof: MUST BE A POWER OF TWO */
#define PH7_KEYWORD_PARENT 44 /* parent */
#define PH7_KEYWORD_PRIVATE 45 /* private */

Loading…
Cancel
Save