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

Reply via email to