add brotli encoding
[m6w6/ext-http] / src / php_http_buffer.c
index b84bcd0cb37ac247d06b5e7b7591435c02798a67..9ff4065321150cb25a95589b9159bd780017a74d 100644 (file)
@@ -10,7 +10,7 @@
     +--------------------------------------------------------------------+
 */
 
-#include <php.h>
+#include "php.h"
 #include "php_http_buffer.h"
 
 PHP_HTTP_BUFFER_API php_http_buffer_t *php_http_buffer_init_ex(
@@ -35,9 +35,13 @@ PHP_HTTP_BUFFER_API php_http_buffer_t *php_http_buffer_init_ex(
 PHP_HTTP_BUFFER_API php_http_buffer_t *php_http_buffer_from_string_ex(
                php_http_buffer_t *buf, const char *str, size_t len)
 {
-       if ((buf = php_http_buffer_init(buf))) {
+       int free_buf = !!buf;
+
+       if (EXPECTED(buf = php_http_buffer_init(buf))) {
                if (PHP_HTTP_BUFFER_NOMEM == php_http_buffer_append(buf, str, len)) {
-                       pefree(buf, buf->pmem);
+                       if (free_buf) {
+                               pefree(buf, buf->pmem);
+                       }
                        buf = NULL;
                }
        }
@@ -55,7 +59,7 @@ PHP_HTTP_BUFFER_API size_t php_http_buffer_resize_ex(
        if (buf->free < len) {
                size_t size = override_size ? override_size : buf->size;
                
-               while ((size + buf->free) < len) {
+               while (UNEXPECTED((size + buf->free) < len)) {
                        size <<= 1;
                }
                
@@ -296,7 +300,7 @@ PHP_HTTP_BUFFER_API size_t php_http_buffer_chunked_input(php_http_buffer_t **s,
        php_http_buffer_t *str;
        size_t passed;
 
-       if (!*s) {
+       if (UNEXPECTED(!*s)) {
                *s = php_http_buffer_init_ex(NULL, chunk_size,
                                chunk_size ? PHP_HTTP_BUFFER_INIT_PREALLOC : 0);
        }