summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-12-01 11:48:17 +0000
committerDmitry Stogov <dmitry@php.net>2005-12-01 11:48:17 +0000
commit8768ab94b38f96e540995f31ce17bb4e1e4210f8 (patch)
tree90a1d85b08b8af63a74fdf8c20224fd89d85aa18 /ext
parent673dc5ee5f1f96439b2bf540df3968c31248ca4e (diff)
downloadphp-git-8768ab94b38f96e540995f31ce17bb4e1e4210f8.tar.gz
Fixed bug #34729 (Crash in ZTS mode under Apache)
Diffstat (limited to 'ext')
-rw-r--r--ext/reflection/php_reflection.c6
-rw-r--r--ext/standard/basic_functions.c6
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);