Browse Source

Remove automatic call to __toString() since it is supposed to cause too

much trouble. See discussion on the mailing list.
PEAR_1_4DEV
Marcus Boerger 22 years ago
parent
commit
ff57d33fe2
  1. 29
      Zend/zend_object_handlers.c

29
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;
}

Loading…
Cancel
Save