diff options
| author | Anthony Ferrara <ircmaxell@gmail.com> | 2012-09-04 10:29:22 -0400 |
|---|---|---|
| committer | Anthony Ferrara <ircmaxell@gmail.com> | 2012-09-04 10:29:22 -0400 |
| commit | 824f1f45818096eff0e022ba2a1cbc2071343c9a (patch) | |
| tree | 821b106513b7835d8e7fad8960446167142028f9 /Zend/zend_API.c | |
| parent | e05413ca594ff10fd93d40429cb598c2e109edf4 (diff) | |
| parent | 4b206126aca2ad9181abe65d70367680a4bc4c03 (diff) | |
| download | php-git-824f1f45818096eff0e022ba2a1cbc2071343c9a.tar.gz | |
Merge remote branch 'upstream/master' into hash_password
* upstream/master: (393 commits)
forked two tests for windows
Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice)
Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice).
Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice).
Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice)
Fixed bug #50997 (SOAP Error when trying to submit 2nd Element of a choice)
Bug #49510: Boolean validation fails with FILTER_NULL_ON_FAILURE with empty string or false
Implemented ReflectionFunction::isGenerator()
Allow null as a default value for length in mb_substr() and mb_strcut()
Allow null as a default value for length in mb_substr() and mb_strcut()
folder
Initializing optional argument description in assert()
Initializing optional argument description in assert()
Fix test failed due to new Token T_YIELD
fix NEWS
Fix leak when yielding array as key
Drop obsolete test
Remove extra blank in notice message, should act as same as vm
Fixed bug #62987 (Assigning to ArrayObject[null][something] overrides all undefined variables)
assert() user message
...
Diffstat (limited to 'Zend/zend_API.c')
| -rw-r--r-- | Zend/zend_API.c | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/Zend/zend_API.c b/Zend/zend_API.c index 98a33e5445..a231415547 100644 --- a/Zend/zend_API.c +++ b/Zend/zend_API.c @@ -2531,6 +2531,9 @@ ZEND_API int zend_disable_function(char *function_name, uint function_name_lengt } /* }}} */ +#ifdef ZEND_WIN32 +#pragma optimize("", off) +#endif static zend_object_value display_disabled_class(zend_class_entry *class_type TSRMLS_DC) /* {{{ */ { zend_object_value retval; @@ -2539,6 +2542,9 @@ static zend_object_value display_disabled_class(zend_class_entry *class_type TSR zend_error(E_WARNING, "%s() has been disabled for security reasons", class_type->name); return retval; } +#ifdef ZEND_WIN32 +#pragma optimize("", on) +#endif /* }}} */ static const zend_function_entry disabled_class_new[] = { @@ -2547,16 +2553,15 @@ static const zend_function_entry disabled_class_new[] = { ZEND_API int zend_disable_class(char *class_name, uint class_name_length TSRMLS_DC) /* {{{ */ { - zend_class_entry disabled_class; + zend_class_entry **disabled_class; zend_str_tolower(class_name, class_name_length); - if (zend_hash_del(CG(class_table), class_name, class_name_length+1)==FAILURE) { + if (zend_hash_find(CG(class_table), class_name, class_name_length+1, (void **)&disabled_class)==FAILURE) { return FAILURE; } - INIT_OVERLOADED_CLASS_ENTRY_EX(disabled_class, class_name, class_name_length, disabled_class_new, NULL, NULL, NULL, NULL, NULL); - disabled_class.create_object = display_disabled_class; - disabled_class.name_length = class_name_length; - zend_register_internal_class(&disabled_class TSRMLS_CC); + INIT_CLASS_ENTRY_INIT_METHODS((**disabled_class), disabled_class_new, NULL, NULL, NULL, NULL, NULL); + (*disabled_class)->create_object = display_disabled_class; + zend_hash_clean(&((*disabled_class)->function_table)); return SUCCESS; } /* }}} */ @@ -2630,7 +2635,6 @@ static int zend_is_callable_check_class(const char *name, int name_len, zend_fca } /* }}} */ - static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fcall_info_cache *fcc, int strict_class, char **error TSRMLS_DC) /* {{{ */ { zend_class_entry *ce_org = fcc->calling_scope; @@ -2653,11 +2657,9 @@ static int zend_is_callable_check_func(int check_flags, zval *callable, zend_fca /* Skip leading \ */ if (Z_STRVAL_P(callable)[0] == '\\') { mlen = Z_STRLEN_P(callable) - 1; - mname = Z_STRVAL_P(callable) + 1; lmname = zend_str_tolower_dup(Z_STRVAL_P(callable) + 1, mlen); } else { mlen = Z_STRLEN_P(callable); - mname = Z_STRVAL_P(callable); lmname = zend_str_tolower_dup(Z_STRVAL_P(callable), mlen); } /* Check if function with given name exists. |
