]> granicus.if.org Git - php/commitdiff
Fix (string) conversion
authorMarcus Boerger <helly@php.net>
Mon, 29 Dec 2003 22:01:47 +0000 (22:01 +0000)
committerMarcus Boerger <helly@php.net>
Mon, 29 Dec 2003 22:01:47 +0000 (22:01 +0000)
Zend/zend_execute.c

index 722b6148f769b0327f26e88d59f988b442755413..f7083765b980bf1e9ed48260364c7c0d2cb06231 100644 (file)
@@ -3299,9 +3299,17 @@ int zend_cast_handler(ZEND_OPCODE_HANDLER_ARGS)
                case IS_DOUBLE:
                        convert_to_double(result);
                        break;
-               case IS_STRING:
-                       convert_to_string(result);
+               case IS_STRING: {
+                       zval var_copy;
+                       int use_copy;
+               
+                       zend_make_printable_zval(result, &var_copy, &use_copy);
+                       if (use_copy) {
+                               zval_dtor(result);
+                               *result = var_copy;
+                       }
                        break;
+               }
                case IS_ARRAY:
                        convert_to_array(result);
                        break;