]> granicus.if.org Git - php/commitdiff
- Missing __ToString() sync
authorMarcus Boerger <helly@php.net>
Wed, 10 May 2006 21:13:22 +0000 (21:13 +0000)
committerMarcus Boerger <helly@php.net>
Wed, 10 May 2006 21:13:22 +0000 (21:13 +0000)
Zend/zend.c

index 076d7154c097ae60b6517f38289b93923df9b285..b1a94ce2abeb6d9b41e81a2cfd50bb1e2dc6cd56 100644 (file)
@@ -229,7 +229,6 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop
                                        if (zend_std_cast_object_tostring(expr, expr_copy, IS_STRING TSRMLS_CC) == SUCCESS) {
                                                break;
                                        }
-                                       zend_error(E_NOTICE, "Object of class %s could not be converted to string", Z_OBJCE_P(expr)->name);
                                } else {
                                        if(Z_OBJ_HANDLER_P(expr, get)) {
                                                zval *z = Z_OBJ_HANDLER_P(expr, get)(expr TSRMLS_CC);
@@ -248,15 +247,11 @@ ZEND_API void zend_make_printable_zval(zval *expr, zval *expr_copy, int *use_cop
                                                zval_ptr_dtor(&z);
                                        }
                                }
-                               if (EG(exception)) {
-                                       zval_dtor(expr_copy);
-                                       expr_copy->value.str.len = 0;
-                                       expr_copy->value.str.val = STR_EMPTY_ALLOC();
-                                       break;
-                               }
+                               zend_error(EG(exception) ? E_ERROR : E_RECOVERABLE_ERROR, "Object of class %s could not be converted to string", Z_OBJCE_P(expr)->name);
+                               zval_dtor(expr_copy);
+                               expr_copy->value.str.len = 0;
+                               expr_copy->value.str.val = STR_EMPTY_ALLOC();
                        }
-                       expr_copy->value.str.val = (char *) emalloc(sizeof("Object id #")-1 + MAX_LENGTH_OF_LONG);
-                       expr_copy->value.str.len = sprintf(expr_copy->value.str.val, "Object id #%ld", (long)expr->value.obj.handle);
                        break;
                case IS_DOUBLE:
                        *expr_copy = *expr;