From: Marcus Boerger Date: Tue, 2 Dec 2003 22:08:51 +0000 (+0000) Subject: Remove automatic call to __toString() since it is supposed to cause too X-Git-Tag: php-5.0.0b3RC1~408 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=ff57d33fe2cd4d3fd1023e241140932facacdba1;p=php Remove automatic call to __toString() since it is supposed to cause too much trouble. See discussion on the mailing list. --- diff --git a/Zend/zend_object_handlers.c b/Zend/zend_object_handlers.c index 6e3b466c99..9d9ab3b247 100644 --- a/Zend/zend_object_handlers.c +++ b/Zend/zend_object_handlers.c @@ -884,35 +884,6 @@ int zend_std_object_get_class_name(zval *object, char **class_name, zend_uint *c int zend_std_cast_object(zval *readobj, zval *writeobj, int type, int should_free TSRMLS_DC) { - zval fname, *retval; - int is_ref, refcount; - - switch (type) { - case IS_STRING: - ZVAL_STRING(&fname, "__tostring", 0); - if (call_user_function_ex(NULL, &readobj, &fname, &retval, 0, NULL, 0, NULL TSRMLS_CC) == SUCCESS) { - if (retval) { - if (Z_TYPE_P(retval) != IS_STRING) { - zend_error(E_ERROR, "Method %s::__toString() must return a string value", Z_OBJCE_P(readobj)->name); - } - } else { - MAKE_STD_ZVAL(retval); - ZVAL_STRINGL(retval, empty_string, 0, 0); - } - zval_dtor(writeobj); - is_ref = writeobj->is_ref; - refcount = writeobj->refcount; - *writeobj = *retval; - zval_copy_ctor(writeobj); - writeobj->is_ref = is_ref; - writeobj->refcount = refcount; - zval_ptr_dtor(&retval); - return SUCCESS; - } - break; - default: - break; - } return FAILURE; }