dmitry Thu Dec 1 06:49:52 2005 EDT
Modified files:
/php-src/ext/standard basic_functions.c
/php-src/ext/reflection php_reflection.c
Log:
Fixed bug #34729 (Crash in ZTS mode under Apache)
http://cvs.php.net/diff.php/php-src/ext/standard/basic_functions.c?r1=1.738&r2=1.739&ty=u
Index: php-src/ext/standard/basic_functions.c
diff -u php-src/ext/standard/basic_functions.c:1.738
php-src/ext/standard/basic_functions.c:1.739
--- php-src/ext/standard/basic_functions.c:1.738 Tue Nov 29 15:27:20 2005
+++ php-src/ext/standard/basic_functions.c Thu Dec 1 06:49:46 2005
@@ -17,7 +17,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: basic_functions.c,v 1.738 2005/11/29 20:27:20 iliaa Exp $ */
+/* $Id: basic_functions.c,v 1.739 2005/12/01 11:49:46 dmitry Exp $ */
#include "php.h"
#include "php_streams.h"
@@ -107,6 +107,8 @@
#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)
@@ -960,7 +962,7 @@
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;
}
@@ -1026,6 +1028,8 @@
#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);
http://cvs.php.net/diff.php/php-src/ext/reflection/php_reflection.c?r1=1.194&r2=1.195&ty=u
Index: php-src/ext/reflection/php_reflection.c
diff -u php-src/ext/reflection/php_reflection.c:1.194
php-src/ext/reflection/php_reflection.c:1.195
--- php-src/ext/reflection/php_reflection.c:1.194 Wed Nov 23 19:30:41 2005
+++ php-src/ext/reflection/php_reflection.c Thu Dec 1 06:49:51 2005
@@ -20,7 +20,7 @@
+----------------------------------------------------------------------+
*/
-/* $Id: php_reflection.c,v 1.194 2005/11/24 00:30:41 helly Exp $ */
+/* $Id: php_reflection.c,v 1.195 2005/12/01 11:49:51 dmitry Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -2541,7 +2541,7 @@
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 *));
}
/* }}} */
@@ -3657,7 +3657,7 @@
if ((ref->prop->flags & ZEND_ACC_STATIC)) {
zend_update_class_constants(intern->ce TSRMLS_CC);
- if (zend_u_hash_quick_find(intern->ce->static_members, utype,
ref->prop->name, ref->prop->name_length + 1, ref->prop->h, (void **) &member)
== FAILURE) {
+ if (zend_u_hash_quick_find(CE_STATIC_MEMBERS(intern->ce),
utype, 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 %v", ref->prop->name);
/* Bails out */
}
@@ -3706,7 +3706,7 @@
}
}
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;
@@ -4277,7 +4277,7 @@
php_info_print_table_start();
php_info_print_table_header(2, "Reflection", "enabled");
- php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.194
2005/11/24 00:30:41 helly Exp $");
+ php_info_print_table_row(2, "Version", "$Id: php_reflection.c,v 1.195
2005/12/01 11:49:51 dmitry Exp $");
php_info_print_table_end();
} /* }}} */
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php