diff options
| author | Andrei Zmievski <andrei@php.net> | 2000-03-24 14:56:19 +0000 |
|---|---|---|
| committer | Andrei Zmievski <andrei@php.net> | 2000-03-24 14:56:19 +0000 |
| commit | 7b02e9fc358d0cd8adb871c8efe2e09a8f55eeb6 (patch) | |
| tree | 3142ef8294da7b4aa913b7807c0a8d1c3cd6016d /ext/standard/array.c | |
| parent | 5b2bad3825110d631f190019940ca4445e340770 (diff) | |
| download | php-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.c | 9 |
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; } |
