diff options
| author | Dmitry Stogov <dmitry@php.net> | 2005-12-01 11:48:17 +0000 |
|---|---|---|
| committer | Dmitry Stogov <dmitry@php.net> | 2005-12-01 11:48:17 +0000 |
| commit | 8768ab94b38f96e540995f31ce17bb4e1e4210f8 (patch) | |
| tree | 90a1d85b08b8af63a74fdf8c20224fd89d85aa18 /ext | |
| parent | 673dc5ee5f1f96439b2bf540df3968c31248ca4e (diff) | |
| download | php-git-8768ab94b38f96e540995f31ce17bb4e1e4210f8.tar.gz | |
Fixed bug #34729 (Crash in ZTS mode under Apache)
Diffstat (limited to 'ext')
| -rw-r--r-- | ext/reflection/php_reflection.c | 6 | ||||
| -rw-r--r-- | ext/standard/basic_functions.c | 6 |
2 files changed, 8 insertions, 4 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c index a456f38768..5258c4850e 100644 --- a/ext/reflection/php_reflection.c +++ b/ext/reflection/php_reflection.c @@ -2529,7 +2529,7 @@ ZEND_METHOD(reflection_class, getStaticProperties) zend_update_class_constants(ce TSRMLS_CC); array_init(return_value); - zend_hash_copy(Z_ARRVAL_P(return_value), ce->static_members, (copy_ctor_func_t) zval_add_ref, (void *) &tmp_copy, sizeof(zval *)); + zend_hash_copy(Z_ARRVAL_P(return_value), CE_STATIC_MEMBERS(ce), (copy_ctor_func_t) zval_add_ref, (void *) &tmp_copy, sizeof(zval *)); } /* }}} */ @@ -3633,7 +3633,7 @@ ZEND_METHOD(reflection_property, getValue) if ((ref->prop->flags & ZEND_ACC_STATIC)) { zend_update_class_constants(intern->ce TSRMLS_CC); - if (zend_hash_quick_find(intern->ce->static_members, ref->prop->name, ref->prop->name_length + 1, ref->prop->h, (void **) &member) == FAILURE) { + if (zend_hash_quick_find(CE_STATIC_MEMBERS(intern->ce), ref->prop->name, ref->prop->name_length + 1, ref->prop->h, (void **) &member) == FAILURE) { zend_error(E_ERROR, "Internal error: Could not find the property %s", ref->prop->name); /* Bails out */ } @@ -3681,7 +3681,7 @@ ZEND_METHOD(reflection_property, setValue) } } zend_update_class_constants(intern->ce TSRMLS_CC); - prop_table = intern->ce->static_members; + prop_table = CE_STATIC_MEMBERS(intern->ce); } else { if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "oz", &object, &value) == FAILURE) { return; diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c index a4e1ced714..be910cf789 100644 --- a/ext/standard/basic_functions.c +++ b/ext/standard/basic_functions.c @@ -107,6 +107,8 @@ php_basic_globals basic_globals; #include "php_fopen_wrappers.h" #include "streamsfuncs.h" +static zend_class_entry *incomplete_class_entry = NULL; + static ZEND_BEGIN_ARG_INFO(first_and_second__args_force_ref, 0) ZEND_ARG_PASS_INFO(1) @@ -956,7 +958,7 @@ static void basic_globals_ctor(php_basic_globals *basic_globals_p TSRMLS_DC) memset(&BG(mblen_state), 0, sizeof(BG(mblen_state))); #endif - BG(incomplete_class) = php_create_incomplete_class(TSRMLS_C); + BG(incomplete_class) = incomplete_class_entry; } @@ -1022,6 +1024,8 @@ PHP_MINIT_FUNCTION(basic) #endif #endif + BG(incomplete_class) = incomplete_class_entry = php_create_incomplete_class(TSRMLS_C); + REGISTER_LONG_CONSTANT("CONNECTION_ABORTED", PHP_CONNECTION_ABORTED, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CONNECTION_NORMAL", PHP_CONNECTION_NORMAL, CONST_CS | CONST_PERSISTENT); REGISTER_LONG_CONSTANT("CONNECTION_TIMEOUT", PHP_CONNECTION_TIMEOUT, CONST_CS | CONST_PERSISTENT); |
