- Fix function_exists()

This commit is contained in:
Zeev Suraski 1999-12-22 18:49:23 +00:00
parent 5939b3d702
commit 1fe57c9505
2 changed files with 18 additions and 8 deletions

View file

@ -142,6 +142,10 @@ ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
return_value->type = IS_RESOURCE;\
return_value->value.lval = l; \
}
#define RETVAL_BOOL(b) { \
return_value->type = IS_BOOL; \
return_value->value.lval = b; \
}
#define RETVAL_LONG(l) { \
return_value->type = IS_LONG; \
return_value->value.lval = l; \
@ -171,6 +175,13 @@ ZEND_API int zend_set_hash_symbol(zval *symbol, char *name, int name_length,
return_value->value.lval = l; \
return; \
}
#define RETURN_BOOL(b) { \
return_value->type = IS_BOOL; \
return_value->value.lval = b; \
return; \
}
#define RETURN_LONG(l) { \
return_value->type = IS_LONG; \
return_value->value.lval = l; \

View file

@ -485,7 +485,8 @@ ZEND_FUNCTION(function_exists)
{
zval **function_name;
char *lcname;
CLS_FETCH();
int retval;
ELS_FETCH();
if (ZEND_NUM_ARGS()!=1 || zend_get_parameters_ex(1, &function_name)==FAILURE) {
WRONG_PARAM_COUNT;
@ -493,13 +494,11 @@ ZEND_FUNCTION(function_exists)
convert_to_string_ex(function_name);
lcname = estrndup((*function_name)->value.str.val, (*function_name)->value.str.len);
zend_str_tolower(lcname, (*function_name)->value.str.len);
if (zend_hash_exists(CG(function_table), lcname, (*function_name)->value.str.len+1) == FAILURE) {
efree(lcname);
RETURN_FALSE;
} else {
efree(lcname);
RETURN_TRUE;
}
retval = zend_hash_exists(EG(function_table), lcname, (*function_name)->value.str.len+1);
efree(lcname);
RETURN_BOOL(retval);
}
/* }}} */