]> granicus.if.org Git - php/commitdiff
Fix PUTS/PUTS_H to only evaluate their argument once.
authorSascha Schumann <sas@php.net>
Sat, 19 Apr 2003 18:35:31 +0000 (18:35 +0000)
committerSascha Schumann <sas@php.net>
Sat, 19 Apr 2003 18:35:31 +0000 (18:35 +0000)
main/php.h

index 55970a5d806de856ad453595cb4a241886db70d2..ddf99a814f1fbfd8fa7b0829375c6aa6703744e4 100644 (file)
@@ -344,10 +344,18 @@ PHPAPI int cfg_get_string(char *varname, char **result);
 /* Output support */
 #include "main/php_output.h"
 #define PHPWRITE(str, str_len)         php_body_write((str), (str_len) TSRMLS_CC)
-#define PUTS(str)                                      php_body_write((str), strlen((str)) TSRMLS_CC)
+#define PUTS(str)                                      do {                    \
+       const char *__str = (str);                                              \
+       php_body_write(__str, strlen(__str) TSRMLS_CC); \
+} while (0)
+
 #define PUTC(c)                                                (php_body_write(&(c), 1 TSRMLS_CC), (c))
 #define PHPWRITE_H(str, str_len)       php_header_write((str), (str_len) TSRMLS_CC)
-#define PUTS_H(str)                                    php_header_write((str), strlen((str)) TSRMLS_CC)
+#define PUTS_H(str)                                    do {                            \
+       const char *__str = (str);                                                      \
+       php_header_write(__str, strlen(__str) TSRMLS_CC);       \
+} while (0)
+
 #define PUTC_H(c)                                      (php_header_write(&(c), 1 TSRMLS_CC), (c))
 
 #ifdef ZTS