cvs: php-src / NEWS /ext/dom php_dom.c /ext/simplexml simplexml.c /main main.c /tests/lang bug22367.phpt ZendEngine2 zend.c zend_API.c
zend_execute.c zend_execute.h zend_execute_API.c zend_globals.h zend_objects.c zend_operators.c zend_vm_def.h zend_vm_execute.h ZendEngine2/tests
bug30332.phpt bug31828.phpt bug32080.phpt bug32852.phpt bug33243.phpt bug34712.phpt bug34767.phpt
| From: | Dmitry Stogov | Date: | Thu, 16 Mar 2006 10:33:23 +0000 |
| Subject: | cvs: php-src / NEWS /ext/dom php_dom.c /ext/simplexml simplexml.c /main main.c /tests/lang bug22367.phpt ZendEngine2 zend.c zend_API.c zend_execute.c zend_execute.h zend_execute_API.c zend_globals.h zend_objects.c zend_operators.c zend_vm_def.h zend_vm_execute.h ZendEngine2/tests bug30332.phpt bug31828.phpt bug32080.phpt bug32852.phpt bug33243.phpt bug34712.phpt bug34767.phpt |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-37296@lists.php.net to get a copy of this message | ||
dmitry Thu Mar 16 10:33:23 2006 UTC
Removed files:
/ZendEngine2/tests bug30332.phpt bug31828.phpt bug32080.phpt
bug32852.phpt bug33243.phpt bug34712.phpt
bug34767.phpt
/php-src/tests/lang bug22367.phpt
Modified files:
/php-src NEWS
/ZendEngine2 zend.c zend_API.c zend_execute.c zend_execute.h
zend_execute_API.c zend_globals.h zend_objects.c
zend_operators.c zend_vm_def.h zend_vm_execute.h
/php-src/ext/dom php_dom.c
/php-src/ext/simplexml simplexml.c
/php-src/main main.c
Log:
Dropped zend.ze1_compatibility_mode
http://cvs.php.net/viewcvs.cgi/php-src/NEWS?r1=1.2101&r2=1.2102&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2101 php-src/NEWS:1.2102 --- php-src/NEWS:1.2101 Thu Mar 16 09:44:41 2006 +++ php-src/NEWS Thu Mar 16 10:33:22 2006 @@ -3,6 +3,7 @@ ?? ??? ????, PHP 6.0 - Unicode support. (Andrei, Dmitry, et al) - Dropped safe_mode support (Ilia, Andi) +- Dropped zend.ze1_compatibility_mode (Dmitry) - Dropped register_long_arrays (Dmitry) - Droped register_globals support (Pierre) - session_register, session_unregister and session_is_registered removed they http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend.c?r1=1.341&r2=1.342&diff_format=u Index: ZendEngine2/zend.c diff -u ZendEngine2/zend.c:1.341 ZendEngine2/zend.c:1.342 --- ZendEngine2/zend.c:1.341 Thu Mar 2 00:40:19 2006 +++ ZendEngine2/zend.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.c,v 1.341 2006/03/02 00:40:19 helly Exp $ */ +/* $Id: zend.c,v 1.342 2006/03/16 10:33:23 dmitry Exp $ */ #include "zend.h" #include "zend_extensions.h" @@ -210,7 +210,6 @@ ZEND_INI_BEGIN() ZEND_INI_ENTRY("error_reporting", NULL, ZEND_INI_ALL, OnUpdateErrorReporting) - STD_ZEND_INI_BOOLEAN("zend.ze1_compatibility_mode", "0", ZEND_INI_ALL, OnUpdateBool, ze1_compatibility_mode, zend_executor_globals, executor_globals) /* Unicode .ini entries */ STD_ZEND_INI_BOOLEAN("unicode_semantics", "0", ZEND_INI_SYSTEM, OnUpdateBool, unicode, zend_unicode_globals, unicode_globals) http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_API.c?r1=1.353&r2=1.354&diff_format=u Index: ZendEngine2/zend_API.c diff -u ZendEngine2/zend_API.c:1.353 ZendEngine2/zend_API.c:1.354 --- ZendEngine2/zend_API.c:1.353 Sun Mar 5 16:09:45 2006 +++ ZendEngine2/zend_API.c Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.c,v 1.353 2006/03/05 16:09:45 helly Exp $ */ +/* $Id: zend_API.c,v 1.354 2006/03/16 10:33:23 dmitry Exp $ */ #include "zend.h" #include "zend_execute.h" @@ -154,25 +154,6 @@ while (param_count-->0) { zval **value = (zval**)(p-arg_count); - if (EG(ze1_compatibility_mode) && Z_TYPE_PP(value) == IS_OBJECT) { - zval *value_ptr; - zstr class_name; - zend_uint class_name_len; - int dup; - - dup = zend_get_object_classname(*value, &class_name, &class_name_len TSRMLS_CC); - - ALLOC_ZVAL(value_ptr); - *value_ptr = **value; - INIT_PZVAL(value_ptr); - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - if(!dup) { - efree(class_name.v); - } - Z_OBJVAL_P(value_ptr) = Z_OBJ_HANDLER_PP(value, clone_obj)(*value TSRMLS_CC); - zval_ptr_dtor(value); - *value = value_ptr; - } *(argument_array++) = value; arg_count--; } http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_execute.c?r1=1.738&r2=1.739&diff_format=u Index: ZendEngine2/zend_execute.c diff -u ZendEngine2/zend_execute.c:1.738 ZendEngine2/zend_execute.c:1.739 --- ZendEngine2/zend_execute.c:1.738 Sun Feb 26 11:57:14 2006 +++ ZendEngine2/zend_execute.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c,v 1.738 2006/02/26 11:57:14 dmitry Exp $ */ +/* $Id: zend_execute.c,v 1.739 2006/03/16 10:33:23 dmitry Exp $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -598,26 +598,7 @@ /* here we are sure we are dealing with an object */ /* separate our value if necessary */ - if (EG(ze1_compatibility_mode) && Z_TYPE_P(value) == IS_OBJECT) { - zval *orig_value = value; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(value); - *value = *orig_value; - value->is_ref = 0; - value->refcount = 0; - dup = zend_get_object_classname(orig_value, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HANDLER_P(value, clone_obj) == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name.v); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - Z_OBJVAL_P(value) = Z_OBJ_HANDLER_P(orig_value, clone_obj)(orig_value TSRMLS_CC); - if (!dup) { - efree(class_name.v); - } - } else if (value_op->op_type == IS_TMP_VAR) { + if (value_op->op_type == IS_TMP_VAR) { zval *orig_value = value; ALLOC_ZVAL(value); @@ -807,60 +788,11 @@ } if (Z_TYPE_P(variable_ptr) == IS_OBJECT && Z_OBJ_HANDLER_P(variable_ptr, set)) { - /* TODO? ze1_compatibility_mode support */ Z_OBJ_HANDLER_P(variable_ptr, set)(variable_ptr_ptr, value TSRMLS_CC); goto done_setting_var; } - if (EG(ze1_compatibility_mode) && Z_TYPE_P(value) == IS_OBJECT) { - zstr class_name; - zend_uint class_name_len; - int dup; - - dup = zend_get_object_classname(value, &class_name, &class_name_len TSRMLS_CC); - - if (Z_OBJ_HANDLER_P(value, clone_obj) == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name.v); - } else if (PZVAL_IS_REF(variable_ptr)) { - if (variable_ptr != value) { - zend_uint refcount = variable_ptr->refcount; - zval garbage; - - if (type != IS_TMP_VAR) { - value->refcount++; - } - garbage = *variable_ptr; - *variable_ptr = *value; - variable_ptr->refcount = refcount; - variable_ptr->is_ref = 1; - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - Z_OBJVAL_P(variable_ptr) = Z_OBJ_HANDLER_P(value, clone_obj)(value TSRMLS_CC); - if (type != IS_TMP_VAR) { - value->refcount--; - } - zendi_zval_dtor(garbage); - } - } else { - if (variable_ptr != value) { - value->refcount++; - variable_ptr->refcount--; - if (variable_ptr->refcount == 0) { - zendi_zval_dtor(*variable_ptr); - } else { - ALLOC_ZVAL(variable_ptr); - *variable_ptr_ptr = variable_ptr; - } - *variable_ptr = *value; - INIT_PZVAL(variable_ptr); - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - Z_OBJVAL_P(variable_ptr) = Z_OBJ_HANDLER_P(value, clone_obj)(value TSRMLS_CC); - zval_ptr_dtor(&value); - } - } - if (!dup) { - efree(class_name.v); - } - } else if (PZVAL_IS_REF(variable_ptr)) { + if (PZVAL_IS_REF(variable_ptr)) { if (variable_ptr!=value) { zend_uint refcount = variable_ptr->refcount; zval garbage; @@ -950,34 +882,9 @@ static inline void zend_receive(zval **variable_ptr_ptr, zval *value TSRMLS_DC) { - zval *variable_ptr = *variable_ptr_ptr; - - if (EG(ze1_compatibility_mode) && Z_TYPE_P(value) == IS_OBJECT) { - zstr class_name; - zend_uint class_name_len; - int dup; - - dup = zend_get_object_classname(value, &class_name, &class_name_len TSRMLS_CC); - - if (Z_OBJ_HANDLER_P(value, clone_obj) == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name.v); - } else { - variable_ptr->refcount--; - ALLOC_ZVAL(variable_ptr); - *variable_ptr_ptr = variable_ptr; - *variable_ptr = *value; - INIT_PZVAL(variable_ptr); - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - Z_OBJVAL_P(variable_ptr) = Z_OBJ_HANDLER_P(value, clone_obj)(value TSRMLS_CC); - } - if (!dup) { - efree(class_name.v); - } - } else { - variable_ptr->refcount--; - *variable_ptr_ptr = value; - value->refcount++; - } + (*variable_ptr_ptr)->refcount--; + *variable_ptr_ptr = value; + value->refcount++; } /* Utility Functions for Extensions */ http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_execute.h?r1=1.98&r2=1.99&diff_format=u Index: ZendEngine2/zend_execute.h diff -u ZendEngine2/zend_execute.h:1.98 ZendEngine2/zend_execute.h:1.99 --- ZendEngine2/zend_execute.h:1.98 Fri Mar 3 23:23:17 2006 +++ ZendEngine2/zend_execute.h Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.h,v 1.98 2006/03/03 23:23:17 andrei Exp $ */ +/* $Id: zend_execute.h,v 1.99 2006/03/16 10:33:23 dmitry Exp $ */ #ifndef ZEND_EXECUTE_H #define ZEND_EXECUTE_H @@ -132,15 +132,8 @@ break; } } - - if(EG(ze1_compatibility_mode)) { - result = (zend_hash_num_elements(Z_OBJPROP_P(op))?1:0); - } else { - result = 1; - } - } else { - result = 1; } + result = 1; break; default: result = 0; http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_execute_API.c?r1=1.369&r2=1.370&diff_format=u Index: ZendEngine2/zend_execute_API.c diff -u ZendEngine2/zend_execute_API.c:1.369 ZendEngine2/zend_execute_API.c:1.370 --- ZendEngine2/zend_execute_API.c:1.369 Tue Mar 14 11:24:30 2006 +++ ZendEngine2/zend_execute_API.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute_API.c,v 1.369 2006/03/14 11:24:30 dmitry Exp $ */ +/* $Id: zend_execute_API.c,v 1.370 2006/03/16 10:33:23 dmitry Exp $ */ #include <stdio.h> #include <signal.h> @@ -412,13 +412,6 @@ zval_dtor(*zval_ptr); safe_free_zval_ptr_rel(*zval_ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC); } else if ((*zval_ptr)->refcount == 1) { - if (Z_TYPE_PP(zval_ptr) == IS_OBJECT) { - TSRMLS_FETCH(); - - if (EG(ze1_compatibility_mode)) { - return; - } - } (*zval_ptr)->is_ref = 0; } } http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_globals.h?r1=1.149&r2=1.150&diff_format=u Index: ZendEngine2/zend_globals.h diff -u ZendEngine2/zend_globals.h:1.149 ZendEngine2/zend_globals.h:1.150 --- ZendEngine2/zend_globals.h:1.149 Fri Mar 10 08:29:22 2006 +++ ZendEngine2/zend_globals.h Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_globals.h,v 1.149 2006/03/10 08:29:22 dmitry Exp $ */ +/* $Id: zend_globals.h,v 1.150 2006/03/16 10:33:23 dmitry Exp $ */ #ifndef ZEND_GLOBALS_H #define ZEND_GLOBALS_H @@ -195,7 +195,6 @@ zend_function *autoload_func; zend_bool bailout_set; zend_bool full_tables_cleanup; - zend_bool ze1_compatibility_mode; /* for extended information support */ zend_bool no_extensions; http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_objects.c?r1=1.64&r2=1.65&diff_format=u Index: ZendEngine2/zend_objects.c diff -u ZendEngine2/zend_objects.c:1.64 ZendEngine2/zend_objects.c:1.65 --- ZendEngine2/zend_objects.c:1.64 Sun Feb 26 11:57:14 2006 +++ ZendEngine2/zend_objects.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects.c,v 1.64 2006/02/26 11:57:14 dmitry Exp $ */ +/* $Id: zend_objects.c,v 1.65 2006/03/16 10:33:23 dmitry Exp $ */ #include "zend.h" #include "zend_globals.h" @@ -114,33 +114,9 @@ return (zend_object *)zend_object_store_get_object(zobject TSRMLS_CC); } -static void zval_add_ref_or_clone(zval **p) -{ - if (Z_TYPE_PP(p) == IS_OBJECT && !PZVAL_IS_REF(*p)) { - TSRMLS_FETCH(); - - if (Z_OBJ_HANDLER_PP(p, clone_obj) == NULL) { - zend_error(E_ERROR, "Trying to clone an uncloneable object of class %v", Z_OBJCE_PP(p)->name); - } else { - zval *orig = *p; - - ALLOC_ZVAL(*p); - **p = *orig; - INIT_PZVAL(*p); - Z_OBJVAL_PP(p) = Z_OBJ_HT_PP(p)->clone_obj(orig TSRMLS_CC); - } - } else { - (*p)->refcount++; - } -} - ZEND_API void zend_objects_clone_members(zend_object *new_object, zend_object_value new_obj_val, zend_object *old_object, zend_object_handle handle TSRMLS_DC) { - if (EG(ze1_compatibility_mode)) { - zend_hash_copy(new_object->properties, old_object->properties, (copy_ctor_func_t) zval_add_ref_or_clone, (void *) NULL /* Not used anymore */, sizeof(zval *)); - } else { - zend_hash_copy(new_object->properties, old_object->properties, (copy_ctor_func_t) zval_add_ref, (void *) NULL /* Not used anymore */, sizeof(zval *)); - } + zend_hash_copy(new_object->properties, old_object->properties, (copy_ctor_func_t) zval_add_ref, (void *) NULL /* Not used anymore */, sizeof(zval *)); if (old_object->ce->clone) { zval *new_obj; http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_operators.c?r1=1.235&r2=1.236&diff_format=u Index: ZendEngine2/zend_operators.c diff -u ZendEngine2/zend_operators.c:1.235 ZendEngine2/zend_operators.c:1.236 --- ZendEngine2/zend_operators.c:1.235 Sun Feb 26 11:57:14 2006 +++ ZendEngine2/zend_operators.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.c,v 1.235 2006/02/26 11:57:14 dmitry Exp $ */ +/* $Id: zend_operators.c,v 1.236 2006/03/16 10:33:23 dmitry Exp $ */ #include <ctype.h> @@ -394,14 +394,8 @@ return; } - if (EG(ze1_compatibility_mode)) { - HashTable *ht = Z_OBJPROP_P(op); - if (ht) { - retval = (zend_hash_num_elements(ht)?1:0); - } - } else { - zend_error(E_NOTICE, "Object of class %v could not be converted to int", Z_OBJCE_P(op)->name); - } + zend_error(E_NOTICE, "Object of class %v could not be converted to int", Z_OBJCE_P(op)->name); + zval_dtor(op); ZVAL_LONG(op, retval); return; @@ -469,14 +463,7 @@ return; } - if (EG(ze1_compatibility_mode)) { - HashTable *ht = Z_OBJPROP_P(op); - if (ht) { - retval = (zend_hash_num_elements(ht)?1.0:0.0); - } - } else { - zend_error(E_NOTICE, "Object of class %v could not be converted to double", Z_OBJCE_P(op)->name); - } + zend_error(E_NOTICE, "Object of class %v could not be converted to double", Z_OBJCE_P(op)->name); zval_dtor(op); ZVAL_DOUBLE(op, retval); @@ -579,13 +566,6 @@ return; } - if (EG(ze1_compatibility_mode)) { - HashTable *ht = Z_OBJPROP_P(op); - if (ht) { - retval = (zend_hash_num_elements(ht)?1:0); - } - } - zval_dtor(op); ZVAL_BOOL(op, retval); break; @@ -1708,15 +1688,7 @@ break; case IS_OBJECT: if (Z_OBJ_HT_P(op1) == Z_OBJ_HT_P(op2)) { - if (EG(ze1_compatibility_mode)) { - zend_compare_objects(result, op1, op2 TSRMLS_CC); - /* comparison returns 0 in case of equality and - * 1 in case of ineqaulity, we need to reverse it - */ - Z_LVAL_P(result) = !Z_LVAL_P(result); - } else { - Z_LVAL_P(result) = (Z_OBJ_HANDLE_P(op1) == Z_OBJ_HANDLE_P(op2)); - } + Z_LVAL_P(result) = (Z_OBJ_HANDLE_P(op1) == Z_OBJ_HANDLE_P(op2)); } else { Z_LVAL_P(result) = 0; } http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_vm_def.h?r1=1.105&r2=1.106&diff_format=u Index: ZendEngine2/zend_vm_def.h diff -u ZendEngine2/zend_vm_def.h:1.105 ZendEngine2/zend_vm_def.h:1.106 --- ZendEngine2/zend_vm_def.h:1.105 Wed Mar 15 11:15:20 2006 +++ ZendEngine2/zend_vm_def.h Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm_def.h,v 1.105 2006/03/15 11:15:20 dmitry Exp $ */ +/* $Id: zend_vm_def.h,v 1.106 2006/03/16 10:33:23 dmitry Exp $ */ /* If you change this file, please regenerate the zend_vm_execute.h and * zend_vm_opcodes.h files by running: @@ -2075,25 +2075,7 @@ retval_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!IS_OP1_TMP_FREE()) { /* Not a temp var */ + if (!IS_OP1_TMP_FREE()) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_vm_execute.h?r1=1.109&r2=1.110&diff_format=u Index: ZendEngine2/zend_vm_execute.h diff -u ZendEngine2/zend_vm_execute.h:1.109 ZendEngine2/zend_vm_execute.h:1.110 --- ZendEngine2/zend_vm_execute.h:1.109 Wed Mar 15 11:15:20 2006 +++ ZendEngine2/zend_vm_execute.h Thu Mar 16 10:33:23 2006 @@ -1652,25 +1652,7 @@ retval_ptr = &opline->op1.u.constant; - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!0) { /* Not a temp var */ + if (!0) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; @@ -4145,25 +4127,7 @@ retval_ptr = _get_zval_ptr_tmp(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!1) { /* Not a temp var */ + if (!1) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; @@ -7145,25 +7109,7 @@ retval_ptr = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!0) { /* Not a temp var */ + if (!0) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; @@ -19787,25 +19733,7 @@ retval_ptr = _get_zval_ptr_cv(&opline->op1, EX(Ts), BP_VAR_R TSRMLS_CC); - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!0) { /* Not a temp var */ + if (!0) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; http://cvs.php.net/viewcvs.cgi/php-src/ext/dom/php_dom.c?r1=1.89&r2=1.90&diff_format=u Index: php-src/ext/dom/php_dom.c diff -u php-src/ext/dom/php_dom.c:1.89 php-src/ext/dom/php_dom.c:1.90 --- php-src/ext/dom/php_dom.c:1.89 Tue Feb 21 20:12:42 2006 +++ php-src/ext/dom/php_dom.c Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_dom.c,v 1.89 2006/02/21 20:12:42 dmitry Exp $ */ +/* $Id: php_dom.c,v 1.90 2006/03/16 10:33:23 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -69,7 +69,6 @@ zend_class_entry *dom_namespace_node_class_entry; zend_object_handlers dom_object_handlers; -zend_object_handlers dom_ze1_object_handlers; static HashTable classes; static HashTable u_classes; @@ -467,24 +466,13 @@ return retval; } -zend_object_value dom_objects_ze1_clone_obj(zval *zobject TSRMLS_DC) -{ - php_error(E_ERROR, "Cannot clone object of class %v due to 'zend.ze1_compatibility_mode'", Z_OBJCE_P(zobject)->name); - /* Return zobject->value.obj just to satisfy compiler */ - return zobject->value.obj; -} - static zend_function_entry dom_functions[] = { PHP_FE(dom_import_simplexml, NULL) {NULL, NULL, NULL} }; static zend_object_handlers* dom_get_obj_handlers(TSRMLS_D) { - if (EG(ze1_compatibility_mode)) { - return &dom_ze1_object_handlers; - } else { - return &dom_object_handlers; - } + return &dom_object_handlers; } static zend_module_dep dom_deps[] = { @@ -562,13 +550,6 @@ dom_object_handlers.clone_obj = dom_objects_store_clone_obj; dom_object_handlers.has_property = dom_property_exists; - memcpy(&dom_ze1_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); - dom_ze1_object_handlers.read_property = dom_read_property; - dom_ze1_object_handlers.write_property = dom_write_property; - dom_object_handlers.get_property_ptr_ptr = dom_get_property_ptr_ptr; - dom_ze1_object_handlers.clone_obj = dom_objects_ze1_clone_obj; - dom_ze1_object_handlers.has_property = dom_property_exists; - zend_hash_init(&classes, 0, NULL, (void (*)(void *))dom_prop_handlers_dtor, 1); INIT_CLASS_ENTRY(ce, "DOMException", php_dom_domexception_class_functions); http://cvs.php.net/viewcvs.cgi/php-src/ext/simplexml/simplexml.c?r1=1.200&r2=1.201&diff_format=u Index: php-src/ext/simplexml/simplexml.c diff -u php-src/ext/simplexml/simplexml.c:1.200 php-src/ext/simplexml/simplexml.c:1.201 --- php-src/ext/simplexml/simplexml.c:1.200 Mon Mar 6 20:16:03 2006 +++ php-src/ext/simplexml/simplexml.c Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: simplexml.c,v 1.200 2006/03/06 20:16:03 rrichards Exp $ */ +/* $Id: simplexml.c,v 1.201 2006/03/16 10:33:23 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1688,38 +1688,6 @@ sxe_count_elements }; -static zend_object_handlers sxe_ze1_object_handlers = { - ZEND_OBJECTS_STORE_HANDLERS, - sxe_property_read, - sxe_property_write, - sxe_dimension_read, - sxe_dimension_write, - sxe_property_get_adr, - sxe_get_value, /* get */ - NULL, - sxe_property_exists, - sxe_property_delete, - sxe_dimension_exists, - sxe_dimension_delete, - sxe_properties_get, - NULL, /* zend_get_std_object_handlers()->get_method,*/ - NULL, /* zend_get_std_object_handlers()->call_method,*/ - NULL, /* zend_get_std_object_handlers()->get_constructor, */ - NULL, /* zend_get_std_object_handlers()->get_class_entry,*/ - NULL, /* zend_get_std_object_handlers()->get_class_name,*/ - sxe_objects_compare, - sxe_object_cast, - sxe_count_elements -}; - -static zend_object_value sxe_object_ze1_clone(zval *zobject TSRMLS_DC) -{ - php_error(E_ERROR, "Cannot clone object of class %v due to 'zend.ze1_compatibility_mode'", Z_OBJCE_P(zobject)->name); - /* Return zobject->value.obj just to satisfy compiler */ - /* FIXME: Should not be a fatal */ - return zobject->value.obj; -} - /* {{{ sxe_object_clone() */ static void @@ -1830,11 +1798,7 @@ zend_object_value rv; rv.handle = zend_objects_store_put(intern, sxe_object_dtor, (zend_objects_free_object_storage_t)sxe_object_free_storage, sxe_object_clone TSRMLS_CC); - if (EG(ze1_compatibility_mode)) { - rv.handlers = (zend_object_handlers *) &sxe_ze1_object_handlers; - } else { - rv.handlers = (zend_object_handlers *) &sxe_object_handlers; - } + rv.handlers = (zend_object_handlers *) &sxe_object_handlers; return rv; } @@ -2271,12 +2235,6 @@ sxe_object_handlers.get_class_entry = zend_get_std_object_handlers()->get_class_entry; sxe_object_handlers.get_class_name = zend_get_std_object_handlers()->get_class_name; - sxe_ze1_object_handlers.get_method = zend_get_std_object_handlers()->get_method; - sxe_ze1_object_handlers.get_constructor = zend_get_std_object_handlers()->get_constructor; - sxe_ze1_object_handlers.get_class_entry = zend_get_std_object_handlers()->get_class_entry; - sxe_ze1_object_handlers.get_class_name = zend_get_std_object_handlers()->get_class_name; - sxe_ze1_object_handlers.clone_obj = sxe_object_ze1_clone; - #ifdef HAVE_SPL if (zend_get_module_started("spl") == SUCCESS) { PHP_MINIT(spl_sxe)(INIT_FUNC_ARGS_PASSTHRU); @@ -2303,7 +2261,7 @@ { php_info_print_table_start(); php_info_print_table_header(2, "Simplexml support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.200 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.201 $"); php_info_print_table_row(2, "Schema support", #ifdef LIBXML_SCHEMAS_ENABLED "enabled"); http://cvs.php.net/viewcvs.cgi/php-src/main/main.c?r1=1.675&r2=1.676&diff_format=u Index: php-src/main/main.c diff -u php-src/main/main.c:1.675 php-src/main/main.c:1.676 --- php-src/main/main.c:1.675 Thu Mar 16 09:44:41 2006 +++ php-src/main/main.c Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: main.c,v 1.675 2006/03/16 09:44:41 dmitry Exp $ */ +/* $Id: main.c,v 1.676 2006/03/16 10:33:23 dmitry Exp $ */ /* {{{ includes */ @@ -1578,6 +1578,7 @@ "magic_quotes_gpc", "magic_quotes_runtime", "magic_quotes_sybase", + "zend.ze1_compatibility_mode", NULL}; const char **p = directives; long val;
http://cvs.php.net/viewcvs.cgi/php-src/NEWS?r1=1.2101&r2=1.2102&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2101 php-src/NEWS:1.2102 --- php-src/NEWS:1.2101 Thu Mar 16 09:44:41 2006 +++ php-src/NEWS Thu Mar 16 10:33:22 2006 @@ -3,6 +3,7 @@ ?? ??? ????, PHP 6.0 - Unicode support. (Andrei, Dmitry, et al) - Dropped safe_mode support (Ilia, Andi) +- Dropped zend.ze1_compatibility_mode (Dmitry) - Dropped register_long_arrays (Dmitry) - Droped register_globals support (Pierre) - session_register, session_unregister and session_is_registered removed they http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend.c?r1=1.341&r2=1.342&diff_format=u Index: ZendEngine2/zend.c diff -u ZendEngine2/zend.c:1.341 ZendEngine2/zend.c:1.342 --- ZendEngine2/zend.c:1.341 Thu Mar 2 00:40:19 2006 +++ ZendEngine2/zend.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend.c,v 1.341 2006/03/02 00:40:19 helly Exp $ */ +/* $Id: zend.c,v 1.342 2006/03/16 10:33:23 dmitry Exp $ */ #include "zend.h" #include "zend_extensions.h" @@ -210,7 +210,6 @@ ZEND_INI_BEGIN() ZEND_INI_ENTRY("error_reporting", NULL, ZEND_INI_ALL, OnUpdateErrorReporting) - STD_ZEND_INI_BOOLEAN("zend.ze1_compatibility_mode", "0", ZEND_INI_ALL, OnUpdateBool, ze1_compatibility_mode, zend_executor_globals, executor_globals) /* Unicode .ini entries */ STD_ZEND_INI_BOOLEAN("unicode_semantics", "0", ZEND_INI_SYSTEM, OnUpdateBool, unicode, zend_unicode_globals, unicode_globals) http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_API.c?r1=1.353&r2=1.354&diff_format=u Index: ZendEngine2/zend_API.c diff -u ZendEngine2/zend_API.c:1.353 ZendEngine2/zend_API.c:1.354 --- ZendEngine2/zend_API.c:1.353 Sun Mar 5 16:09:45 2006 +++ ZendEngine2/zend_API.c Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_API.c,v 1.353 2006/03/05 16:09:45 helly Exp $ */ +/* $Id: zend_API.c,v 1.354 2006/03/16 10:33:23 dmitry Exp $ */ #include "zend.h" #include "zend_execute.h" @@ -154,25 +154,6 @@ while (param_count-->0) { zval **value = (zval**)(p-arg_count); - if (EG(ze1_compatibility_mode) && Z_TYPE_PP(value) == IS_OBJECT) { - zval *value_ptr; - zstr class_name; - zend_uint class_name_len; - int dup; - - dup = zend_get_object_classname(*value, &class_name, &class_name_len TSRMLS_CC); - - ALLOC_ZVAL(value_ptr); - *value_ptr = **value; - INIT_PZVAL(value_ptr); - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - if(!dup) { - efree(class_name.v); - } - Z_OBJVAL_P(value_ptr) = Z_OBJ_HANDLER_PP(value, clone_obj)(*value TSRMLS_CC); - zval_ptr_dtor(value); - *value = value_ptr; - } *(argument_array++) = value; arg_count--; } http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_execute.c?r1=1.738&r2=1.739&diff_format=u Index: ZendEngine2/zend_execute.c diff -u ZendEngine2/zend_execute.c:1.738 ZendEngine2/zend_execute.c:1.739 --- ZendEngine2/zend_execute.c:1.738 Sun Feb 26 11:57:14 2006 +++ ZendEngine2/zend_execute.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.c,v 1.738 2006/02/26 11:57:14 dmitry Exp $ */ +/* $Id: zend_execute.c,v 1.739 2006/03/16 10:33:23 dmitry Exp $ */ #define ZEND_INTENSIVE_DEBUGGING 0 @@ -598,26 +598,7 @@ /* here we are sure we are dealing with an object */ /* separate our value if necessary */ - if (EG(ze1_compatibility_mode) && Z_TYPE_P(value) == IS_OBJECT) { - zval *orig_value = value; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(value); - *value = *orig_value; - value->is_ref = 0; - value->refcount = 0; - dup = zend_get_object_classname(orig_value, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HANDLER_P(value, clone_obj) == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name.v); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - Z_OBJVAL_P(value) = Z_OBJ_HANDLER_P(orig_value, clone_obj)(orig_value TSRMLS_CC); - if (!dup) { - efree(class_name.v); - } - } else if (value_op->op_type == IS_TMP_VAR) { + if (value_op->op_type == IS_TMP_VAR) { zval *orig_value = value; ALLOC_ZVAL(value); @@ -807,60 +788,11 @@ } if (Z_TYPE_P(variable_ptr) == IS_OBJECT && Z_OBJ_HANDLER_P(variable_ptr, set)) { - /* TODO? ze1_compatibility_mode support */ Z_OBJ_HANDLER_P(variable_ptr, set)(variable_ptr_ptr, value TSRMLS_CC); goto done_setting_var; } - if (EG(ze1_compatibility_mode) && Z_TYPE_P(value) == IS_OBJECT) { - zstr class_name; - zend_uint class_name_len; - int dup; - - dup = zend_get_object_classname(value, &class_name, &class_name_len TSRMLS_CC); - - if (Z_OBJ_HANDLER_P(value, clone_obj) == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name.v); - } else if (PZVAL_IS_REF(variable_ptr)) { - if (variable_ptr != value) { - zend_uint refcount = variable_ptr->refcount; - zval garbage; - - if (type != IS_TMP_VAR) { - value->refcount++; - } - garbage = *variable_ptr; - *variable_ptr = *value; - variable_ptr->refcount = refcount; - variable_ptr->is_ref = 1; - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - Z_OBJVAL_P(variable_ptr) = Z_OBJ_HANDLER_P(value, clone_obj)(value TSRMLS_CC); - if (type != IS_TMP_VAR) { - value->refcount--; - } - zendi_zval_dtor(garbage); - } - } else { - if (variable_ptr != value) { - value->refcount++; - variable_ptr->refcount--; - if (variable_ptr->refcount == 0) { - zendi_zval_dtor(*variable_ptr); - } else { - ALLOC_ZVAL(variable_ptr); - *variable_ptr_ptr = variable_ptr; - } - *variable_ptr = *value; - INIT_PZVAL(variable_ptr); - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - Z_OBJVAL_P(variable_ptr) = Z_OBJ_HANDLER_P(value, clone_obj)(value TSRMLS_CC); - zval_ptr_dtor(&value); - } - } - if (!dup) { - efree(class_name.v); - } - } else if (PZVAL_IS_REF(variable_ptr)) { + if (PZVAL_IS_REF(variable_ptr)) { if (variable_ptr!=value) { zend_uint refcount = variable_ptr->refcount; zval garbage; @@ -950,34 +882,9 @@ static inline void zend_receive(zval **variable_ptr_ptr, zval *value TSRMLS_DC) { - zval *variable_ptr = *variable_ptr_ptr; - - if (EG(ze1_compatibility_mode) && Z_TYPE_P(value) == IS_OBJECT) { - zstr class_name; - zend_uint class_name_len; - int dup; - - dup = zend_get_object_classname(value, &class_name, &class_name_len TSRMLS_CC); - - if (Z_OBJ_HANDLER_P(value, clone_obj) == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name.v); - } else { - variable_ptr->refcount--; - ALLOC_ZVAL(variable_ptr); - *variable_ptr_ptr = variable_ptr; - *variable_ptr = *value; - INIT_PZVAL(variable_ptr); - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name.v); - Z_OBJVAL_P(variable_ptr) = Z_OBJ_HANDLER_P(value, clone_obj)(value TSRMLS_CC); - } - if (!dup) { - efree(class_name.v); - } - } else { - variable_ptr->refcount--; - *variable_ptr_ptr = value; - value->refcount++; - } + (*variable_ptr_ptr)->refcount--; + *variable_ptr_ptr = value; + value->refcount++; } /* Utility Functions for Extensions */ http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_execute.h?r1=1.98&r2=1.99&diff_format=u Index: ZendEngine2/zend_execute.h diff -u ZendEngine2/zend_execute.h:1.98 ZendEngine2/zend_execute.h:1.99 --- ZendEngine2/zend_execute.h:1.98 Fri Mar 3 23:23:17 2006 +++ ZendEngine2/zend_execute.h Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute.h,v 1.98 2006/03/03 23:23:17 andrei Exp $ */ +/* $Id: zend_execute.h,v 1.99 2006/03/16 10:33:23 dmitry Exp $ */ #ifndef ZEND_EXECUTE_H #define ZEND_EXECUTE_H @@ -132,15 +132,8 @@ break; } } - - if(EG(ze1_compatibility_mode)) { - result = (zend_hash_num_elements(Z_OBJPROP_P(op))?1:0); - } else { - result = 1; - } - } else { - result = 1; } + result = 1; break; default: result = 0; http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_execute_API.c?r1=1.369&r2=1.370&diff_format=u Index: ZendEngine2/zend_execute_API.c diff -u ZendEngine2/zend_execute_API.c:1.369 ZendEngine2/zend_execute_API.c:1.370 --- ZendEngine2/zend_execute_API.c:1.369 Tue Mar 14 11:24:30 2006 +++ ZendEngine2/zend_execute_API.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_execute_API.c,v 1.369 2006/03/14 11:24:30 dmitry Exp $ */ +/* $Id: zend_execute_API.c,v 1.370 2006/03/16 10:33:23 dmitry Exp $ */ #include <stdio.h> #include <signal.h> @@ -412,13 +412,6 @@ zval_dtor(*zval_ptr); safe_free_zval_ptr_rel(*zval_ptr ZEND_FILE_LINE_RELAY_CC ZEND_FILE_LINE_CC); } else if ((*zval_ptr)->refcount == 1) { - if (Z_TYPE_PP(zval_ptr) == IS_OBJECT) { - TSRMLS_FETCH(); - - if (EG(ze1_compatibility_mode)) { - return; - } - } (*zval_ptr)->is_ref = 0; } } http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_globals.h?r1=1.149&r2=1.150&diff_format=u Index: ZendEngine2/zend_globals.h diff -u ZendEngine2/zend_globals.h:1.149 ZendEngine2/zend_globals.h:1.150 --- ZendEngine2/zend_globals.h:1.149 Fri Mar 10 08:29:22 2006 +++ ZendEngine2/zend_globals.h Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_globals.h,v 1.149 2006/03/10 08:29:22 dmitry Exp $ */ +/* $Id: zend_globals.h,v 1.150 2006/03/16 10:33:23 dmitry Exp $ */ #ifndef ZEND_GLOBALS_H #define ZEND_GLOBALS_H @@ -195,7 +195,6 @@ zend_function *autoload_func; zend_bool bailout_set; zend_bool full_tables_cleanup; - zend_bool ze1_compatibility_mode; /* for extended information support */ zend_bool no_extensions; http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_objects.c?r1=1.64&r2=1.65&diff_format=u Index: ZendEngine2/zend_objects.c diff -u ZendEngine2/zend_objects.c:1.64 ZendEngine2/zend_objects.c:1.65 --- ZendEngine2/zend_objects.c:1.64 Sun Feb 26 11:57:14 2006 +++ ZendEngine2/zend_objects.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_objects.c,v 1.64 2006/02/26 11:57:14 dmitry Exp $ */ +/* $Id: zend_objects.c,v 1.65 2006/03/16 10:33:23 dmitry Exp $ */ #include "zend.h" #include "zend_globals.h" @@ -114,33 +114,9 @@ return (zend_object *)zend_object_store_get_object(zobject TSRMLS_CC); } -static void zval_add_ref_or_clone(zval **p) -{ - if (Z_TYPE_PP(p) == IS_OBJECT && !PZVAL_IS_REF(*p)) { - TSRMLS_FETCH(); - - if (Z_OBJ_HANDLER_PP(p, clone_obj) == NULL) { - zend_error(E_ERROR, "Trying to clone an uncloneable object of class %v", Z_OBJCE_PP(p)->name); - } else { - zval *orig = *p; - - ALLOC_ZVAL(*p); - **p = *orig; - INIT_PZVAL(*p); - Z_OBJVAL_PP(p) = Z_OBJ_HT_PP(p)->clone_obj(orig TSRMLS_CC); - } - } else { - (*p)->refcount++; - } -} - ZEND_API void zend_objects_clone_members(zend_object *new_object, zend_object_value new_obj_val, zend_object *old_object, zend_object_handle handle TSRMLS_DC) { - if (EG(ze1_compatibility_mode)) { - zend_hash_copy(new_object->properties, old_object->properties, (copy_ctor_func_t) zval_add_ref_or_clone, (void *) NULL /* Not used anymore */, sizeof(zval *)); - } else { - zend_hash_copy(new_object->properties, old_object->properties, (copy_ctor_func_t) zval_add_ref, (void *) NULL /* Not used anymore */, sizeof(zval *)); - } + zend_hash_copy(new_object->properties, old_object->properties, (copy_ctor_func_t) zval_add_ref, (void *) NULL /* Not used anymore */, sizeof(zval *)); if (old_object->ce->clone) { zval *new_obj; http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_operators.c?r1=1.235&r2=1.236&diff_format=u Index: ZendEngine2/zend_operators.c diff -u ZendEngine2/zend_operators.c:1.235 ZendEngine2/zend_operators.c:1.236 --- ZendEngine2/zend_operators.c:1.235 Sun Feb 26 11:57:14 2006 +++ ZendEngine2/zend_operators.c Thu Mar 16 10:33:23 2006 @@ -17,7 +17,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_operators.c,v 1.235 2006/02/26 11:57:14 dmitry Exp $ */ +/* $Id: zend_operators.c,v 1.236 2006/03/16 10:33:23 dmitry Exp $ */ #include <ctype.h> @@ -394,14 +394,8 @@ return; } - if (EG(ze1_compatibility_mode)) { - HashTable *ht = Z_OBJPROP_P(op); - if (ht) { - retval = (zend_hash_num_elements(ht)?1:0); - } - } else { - zend_error(E_NOTICE, "Object of class %v could not be converted to int", Z_OBJCE_P(op)->name); - } + zend_error(E_NOTICE, "Object of class %v could not be converted to int", Z_OBJCE_P(op)->name); + zval_dtor(op); ZVAL_LONG(op, retval); return; @@ -469,14 +463,7 @@ return; } - if (EG(ze1_compatibility_mode)) { - HashTable *ht = Z_OBJPROP_P(op); - if (ht) { - retval = (zend_hash_num_elements(ht)?1.0:0.0); - } - } else { - zend_error(E_NOTICE, "Object of class %v could not be converted to double", Z_OBJCE_P(op)->name); - } + zend_error(E_NOTICE, "Object of class %v could not be converted to double", Z_OBJCE_P(op)->name); zval_dtor(op); ZVAL_DOUBLE(op, retval); @@ -579,13 +566,6 @@ return; } - if (EG(ze1_compatibility_mode)) { - HashTable *ht = Z_OBJPROP_P(op); - if (ht) { - retval = (zend_hash_num_elements(ht)?1:0); - } - } - zval_dtor(op); ZVAL_BOOL(op, retval); break; @@ -1708,15 +1688,7 @@ break; case IS_OBJECT: if (Z_OBJ_HT_P(op1) == Z_OBJ_HT_P(op2)) { - if (EG(ze1_compatibility_mode)) { - zend_compare_objects(result, op1, op2 TSRMLS_CC); - /* comparison returns 0 in case of equality and - * 1 in case of ineqaulity, we need to reverse it - */ - Z_LVAL_P(result) = !Z_LVAL_P(result); - } else { - Z_LVAL_P(result) = (Z_OBJ_HANDLE_P(op1) == Z_OBJ_HANDLE_P(op2)); - } + Z_LVAL_P(result) = (Z_OBJ_HANDLE_P(op1) == Z_OBJ_HANDLE_P(op2)); } else { Z_LVAL_P(result) = 0; } http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_vm_def.h?r1=1.105&r2=1.106&diff_format=u Index: ZendEngine2/zend_vm_def.h diff -u ZendEngine2/zend_vm_def.h:1.105 ZendEngine2/zend_vm_def.h:1.106 --- ZendEngine2/zend_vm_def.h:1.105 Wed Mar 15 11:15:20 2006 +++ ZendEngine2/zend_vm_def.h Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_vm_def.h,v 1.105 2006/03/15 11:15:20 dmitry Exp $ */ +/* $Id: zend_vm_def.h,v 1.106 2006/03/16 10:33:23 dmitry Exp $ */ /* If you change this file, please regenerate the zend_vm_execute.h and * zend_vm_opcodes.h files by running: @@ -2075,25 +2075,7 @@ retval_ptr = GET_OP1_ZVAL_PTR(BP_VAR_R); - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!IS_OP1_TMP_FREE()) { /* Not a temp var */ + if (!IS_OP1_TMP_FREE()) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; http://cvs.php.net/viewcvs.cgi/ZendEngine2/zend_vm_execute.h?r1=1.109&r2=1.110&diff_format=u Index: ZendEngine2/zend_vm_execute.h diff -u ZendEngine2/zend_vm_execute.h:1.109 ZendEngine2/zend_vm_execute.h:1.110 --- ZendEngine2/zend_vm_execute.h:1.109 Wed Mar 15 11:15:20 2006 +++ ZendEngine2/zend_vm_execute.h Thu Mar 16 10:33:23 2006 @@ -1652,25 +1652,7 @@ retval_ptr = &opline->op1.u.constant; - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!0) { /* Not a temp var */ + if (!0) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; @@ -4145,25 +4127,7 @@ retval_ptr = _get_zval_ptr_tmp(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!1) { /* Not a temp var */ + if (!1) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; @@ -7145,25 +7109,7 @@ retval_ptr = _get_zval_ptr_var(&opline->op1, EX(Ts), &free_op1 TSRMLS_CC); - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!0) { /* Not a temp var */ + if (!0) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; @@ -19787,25 +19733,7 @@ retval_ptr = _get_zval_ptr_cv(&opline->op1, EX(Ts), BP_VAR_R TSRMLS_CC); - if (EG(ze1_compatibility_mode) && Z_TYPE_P(retval_ptr) == IS_OBJECT) { - zval *ret; - zstr class_name; - zend_uint class_name_len; - int dup; - - ALLOC_ZVAL(ret); - INIT_PZVAL_COPY(ret, retval_ptr); - dup = zend_get_object_classname(retval_ptr, &class_name, &class_name_len TSRMLS_CC); - if (Z_OBJ_HT_P(retval_ptr)->clone_obj == NULL) { - zend_error_noreturn(E_ERROR, "Trying to clone an uncloneable object of class %v", class_name); - } - zend_error(E_STRICT, "Implicit cloning object of class '%v' because of 'zend.ze1_compatibility_mode'", class_name); - Z_OBJVAL_P(ret) = Z_OBJ_HT_P(retval_ptr)->clone_obj(retval_ptr TSRMLS_CC); - *EG(return_value_ptr_ptr) = ret; - if (!dup) { - efree(class_name.v); - } - } else if (!0) { /* Not a temp var */ + if (!0) { /* Not a temp var */ if (EG(active_op_array)->return_reference == ZEND_RETURN_REF || (PZVAL_IS_REF(retval_ptr) && retval_ptr->refcount > 0)) { zval *ret; http://cvs.php.net/viewcvs.cgi/php-src/ext/dom/php_dom.c?r1=1.89&r2=1.90&diff_format=u Index: php-src/ext/dom/php_dom.c diff -u php-src/ext/dom/php_dom.c:1.89 php-src/ext/dom/php_dom.c:1.90 --- php-src/ext/dom/php_dom.c:1.89 Tue Feb 21 20:12:42 2006 +++ php-src/ext/dom/php_dom.c Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: php_dom.c,v 1.89 2006/02/21 20:12:42 dmitry Exp $ */ +/* $Id: php_dom.c,v 1.90 2006/03/16 10:33:23 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -69,7 +69,6 @@ zend_class_entry *dom_namespace_node_class_entry; zend_object_handlers dom_object_handlers; -zend_object_handlers dom_ze1_object_handlers; static HashTable classes; static HashTable u_classes; @@ -467,24 +466,13 @@ return retval; } -zend_object_value dom_objects_ze1_clone_obj(zval *zobject TSRMLS_DC) -{ - php_error(E_ERROR, "Cannot clone object of class %v due to 'zend.ze1_compatibility_mode'", Z_OBJCE_P(zobject)->name); - /* Return zobject->value.obj just to satisfy compiler */ - return zobject->value.obj; -} - static zend_function_entry dom_functions[] = { PHP_FE(dom_import_simplexml, NULL) {NULL, NULL, NULL} }; static zend_object_handlers* dom_get_obj_handlers(TSRMLS_D) { - if (EG(ze1_compatibility_mode)) { - return &dom_ze1_object_handlers; - } else { - return &dom_object_handlers; - } + return &dom_object_handlers; } static zend_module_dep dom_deps[] = { @@ -562,13 +550,6 @@ dom_object_handlers.clone_obj = dom_objects_store_clone_obj; dom_object_handlers.has_property = dom_property_exists; - memcpy(&dom_ze1_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers)); - dom_ze1_object_handlers.read_property = dom_read_property; - dom_ze1_object_handlers.write_property = dom_write_property; - dom_object_handlers.get_property_ptr_ptr = dom_get_property_ptr_ptr; - dom_ze1_object_handlers.clone_obj = dom_objects_ze1_clone_obj; - dom_ze1_object_handlers.has_property = dom_property_exists; - zend_hash_init(&classes, 0, NULL, (void (*)(void *))dom_prop_handlers_dtor, 1); INIT_CLASS_ENTRY(ce, "DOMException", php_dom_domexception_class_functions); http://cvs.php.net/viewcvs.cgi/php-src/ext/simplexml/simplexml.c?r1=1.200&r2=1.201&diff_format=u Index: php-src/ext/simplexml/simplexml.c diff -u php-src/ext/simplexml/simplexml.c:1.200 php-src/ext/simplexml/simplexml.c:1.201 --- php-src/ext/simplexml/simplexml.c:1.200 Mon Mar 6 20:16:03 2006 +++ php-src/ext/simplexml/simplexml.c Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: simplexml.c,v 1.200 2006/03/06 20:16:03 rrichards Exp $ */ +/* $Id: simplexml.c,v 1.201 2006/03/16 10:33:23 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1688,38 +1688,6 @@ sxe_count_elements }; -static zend_object_handlers sxe_ze1_object_handlers = { - ZEND_OBJECTS_STORE_HANDLERS, - sxe_property_read, - sxe_property_write, - sxe_dimension_read, - sxe_dimension_write, - sxe_property_get_adr, - sxe_get_value, /* get */ - NULL, - sxe_property_exists, - sxe_property_delete, - sxe_dimension_exists, - sxe_dimension_delete, - sxe_properties_get, - NULL, /* zend_get_std_object_handlers()->get_method,*/ - NULL, /* zend_get_std_object_handlers()->call_method,*/ - NULL, /* zend_get_std_object_handlers()->get_constructor, */ - NULL, /* zend_get_std_object_handlers()->get_class_entry,*/ - NULL, /* zend_get_std_object_handlers()->get_class_name,*/ - sxe_objects_compare, - sxe_object_cast, - sxe_count_elements -}; - -static zend_object_value sxe_object_ze1_clone(zval *zobject TSRMLS_DC) -{ - php_error(E_ERROR, "Cannot clone object of class %v due to 'zend.ze1_compatibility_mode'", Z_OBJCE_P(zobject)->name); - /* Return zobject->value.obj just to satisfy compiler */ - /* FIXME: Should not be a fatal */ - return zobject->value.obj; -} - /* {{{ sxe_object_clone() */ static void @@ -1830,11 +1798,7 @@ zend_object_value rv; rv.handle = zend_objects_store_put(intern, sxe_object_dtor, (zend_objects_free_object_storage_t)sxe_object_free_storage, sxe_object_clone TSRMLS_CC); - if (EG(ze1_compatibility_mode)) { - rv.handlers = (zend_object_handlers *) &sxe_ze1_object_handlers; - } else { - rv.handlers = (zend_object_handlers *) &sxe_object_handlers; - } + rv.handlers = (zend_object_handlers *) &sxe_object_handlers; return rv; } @@ -2271,12 +2235,6 @@ sxe_object_handlers.get_class_entry = zend_get_std_object_handlers()->get_class_entry; sxe_object_handlers.get_class_name = zend_get_std_object_handlers()->get_class_name; - sxe_ze1_object_handlers.get_method = zend_get_std_object_handlers()->get_method; - sxe_ze1_object_handlers.get_constructor = zend_get_std_object_handlers()->get_constructor; - sxe_ze1_object_handlers.get_class_entry = zend_get_std_object_handlers()->get_class_entry; - sxe_ze1_object_handlers.get_class_name = zend_get_std_object_handlers()->get_class_name; - sxe_ze1_object_handlers.clone_obj = sxe_object_ze1_clone; - #ifdef HAVE_SPL if (zend_get_module_started("spl") == SUCCESS) { PHP_MINIT(spl_sxe)(INIT_FUNC_ARGS_PASSTHRU); @@ -2303,7 +2261,7 @@ { php_info_print_table_start(); php_info_print_table_header(2, "Simplexml support", "enabled"); - php_info_print_table_row(2, "Revision", "$Revision: 1.200 $"); + php_info_print_table_row(2, "Revision", "$Revision: 1.201 $"); php_info_print_table_row(2, "Schema support", #ifdef LIBXML_SCHEMAS_ENABLED "enabled"); http://cvs.php.net/viewcvs.cgi/php-src/main/main.c?r1=1.675&r2=1.676&diff_format=u Index: php-src/main/main.c diff -u php-src/main/main.c:1.675 php-src/main/main.c:1.676 --- php-src/main/main.c:1.675 Thu Mar 16 09:44:41 2006 +++ php-src/main/main.c Thu Mar 16 10:33:23 2006 @@ -18,7 +18,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: main.c,v 1.675 2006/03/16 09:44:41 dmitry Exp $ */ +/* $Id: main.c,v 1.676 2006/03/16 10:33:23 dmitry Exp $ */ /* {{{ includes */ @@ -1578,6 +1578,7 @@ "magic_quotes_gpc", "magic_quotes_runtime", "magic_quotes_sybase", + "zend.ze1_compatibility_mode", NULL}; const char **p = directives; long val;