]> granicus.if.org Git - php/commitdiff
fix win32 build
authorAntony Dovgal <tony2001@php.net>
Tue, 29 Aug 2006 12:20:18 +0000 (12:20 +0000)
committerAntony Dovgal <tony2001@php.net>
Tue, 29 Aug 2006 12:20:18 +0000 (12:20 +0000)
EG(precision) can be changed in runtime, even in php_implode() (hint: __toString()), so please think twice before optimizing

ext/standard/string.c

index f5851fa87d50b2ff66c4dbac4c1d70c0fcf726e6..8e5fb6f81929a2a477387084b5fcf6a5265b3329 100644 (file)
@@ -920,9 +920,11 @@ PHPAPI void php_implode(zval *delim, zval *arr, zval *return_value TSRMLS_DC)
                                break;
 
                        case IS_DOUBLE: {
-                               char stmp[MAX_LENGTH_OF_DOUBLE + EG(precision) + 1];
+                               char *stmp;
+                               stmp = emalloc(MAX_LENGTH_OF_DOUBLE + EG(precision) + 1);
                                str_len = sprintf(stmp, "%.*G", (int) EG(precision), Z_DVAL_PP(tmp));
                                smart_str_appendl(&implstr, stmp, str_len);
+                               efree(stmp);
                        }
                                break;