summaryrefslogtreecommitdiff
path: root/ext/standard/array.c
diff options
context:
space:
mode:
authorAndrei Zmievski <andrei@php.net>2000-03-24 14:56:19 +0000
committerAndrei Zmievski <andrei@php.net>2000-03-24 14:56:19 +0000
commit7b02e9fc358d0cd8adb871c8efe2e09a8f55eeb6 (patch)
tree3142ef8294da7b4aa913b7807c0a8d1c3cd6016d /ext/standard/array.c
parent5b2bad3825110d631f190019940ca4445e340770 (diff)
downloadphp-git-7b02e9fc358d0cd8adb871c8efe2e09a8f55eeb6.tar.gz
@- Fixed extract() for EXTR_PREFIX_SAME and EXTR_SKIP cases. (Andrei)
Diffstat (limited to 'ext/standard/array.c')
-rw-r--r--ext/standard/array.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/ext/standard/array.c b/ext/standard/array.c
index e280d9f002..f8aa3ff772 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -891,7 +891,7 @@ static int _valid_var_name(char *varname)
PHP_FUNCTION(extract)
{
zval **var_array, **etype, **prefix;
- zval **entry, *exist, *data;
+ zval **entry, *data;
char *varname, *finalname;
ulong lkey;
int res, extype;
@@ -947,15 +947,14 @@ PHP_FUNCTION(extract)
if (_valid_var_name(varname)) {
finalname = NULL;
- res = zend_hash_find(EG(active_symbol_table),
- varname, strlen(varname)+1, (void**)&exist);
+ res = zend_hash_exists(EG(active_symbol_table), varname, strlen(varname)+1);
switch (extype) {
case EXTR_OVERWRITE:
finalname = estrdup(varname);
break;
case EXTR_PREFIX_SAME:
- if (res != SUCCESS)
+ if (!res)
finalname = estrdup(varname);
/* break omitted intentionally */
@@ -969,7 +968,7 @@ PHP_FUNCTION(extract)
break;
default:
- if (res != SUCCESS)
+ if (!res)
finalname = estrdup(varname);
break;
}