]> granicus.if.org Git - php/commitdiff
Move smart_string to Zend
authorNikita Popov <nikic@php.net>
Sun, 18 Dec 2016 19:04:38 +0000 (20:04 +0100)
committerNikita Popov <nikic@php.net>
Sun, 1 Jan 2017 20:28:20 +0000 (21:28 +0100)
smart_str is already in Zend.

Zend/zend_smart_string.h [new file with mode: 0644]
Zend/zend_smart_string_public.h [new file with mode: 0644]
ext/standard/php_smart_string.h
ext/standard/php_smart_string_public.h
main/rfc1867.c
main/spprintf.c

diff --git a/Zend/zend_smart_string.h b/Zend/zend_smart_string.h
new file mode 100644 (file)
index 0000000..e04f256
--- /dev/null
@@ -0,0 +1,149 @@
+/*
+   +----------------------------------------------------------------------+
+   | PHP Version 7                                                        |
+   +----------------------------------------------------------------------+
+   | Copyright (c) 1997-2016 The PHP Group                                |
+   +----------------------------------------------------------------------+
+   | This source file is subject to version 3.01 of the PHP license,      |
+   | that is bundled with this package in the file LICENSE, and is        |
+   | available through the world-wide-web at the following url:           |
+   | http://www.php.net/license/3_01.txt                                  |
+   | If you did not receive a copy of the PHP license and are unable to   |
+   | obtain it through the world-wide-web, please send a note to          |
+   | license@php.net so we can mail you a copy immediately.               |
+   +----------------------------------------------------------------------+
+   | Author: Sascha Schumann <sascha@schumann.cx>                         |
+   |         Xinchen Hui <laruence@php.net>                               |
+   +----------------------------------------------------------------------+
+ */
+
+/* $Id$ */
+
+#ifndef PHP_SMART_STRING_H
+#define PHP_SMART_STRING_H
+
+#include "zend_smart_string.h"
+
+#include <stdlib.h>
+#ifndef SMART_STR_USE_REALLOC
+#include <zend.h>
+#endif
+
+#define smart_string_0(x) do {                                                                         \
+       if ((x)->c) {                                                                                                   \
+               (x)->c[(x)->len] = '\0';                                                                        \
+       }                                                                                                                               \
+} while (0)
+
+#ifndef SMART_STRING_PREALLOC
+#define SMART_STRING_PREALLOC 128
+#endif
+
+#ifndef SMART_STRING_START_SIZE
+#define SMART_STRING_START_SIZE 78
+#endif
+
+#ifdef SMART_STRING_USE_REALLOC
+#define SMART_STRING_REALLOC(a,b,c) realloc((a),(b))
+#else
+#define SMART_STRING_REALLOC(a,b,c) perealloc((a),(b),(c))
+#endif
+
+#define SMART_STRING_DO_REALLOC(d, what) \
+       (d)->c = SMART_STRING_REALLOC((d)->c, (d)->a + 1, (what))
+
+#define smart_string_alloc4(d, n, what, newlen) do {                           \
+       if (!(d)->c) {                                                                                                  \
+               (d)->len = 0;                                                                                           \
+               newlen = (n);                                                                                           \
+               (d)->a = newlen < SMART_STRING_START_SIZE                                       \
+                               ? SMART_STRING_START_SIZE                                                       \
+                               : newlen + SMART_STRING_PREALLOC;                                       \
+               SMART_STRING_DO_REALLOC(d, what);                                                       \
+       } else {                                                                                                                \
+               if(UNEXPECTED((size_t)n > SIZE_MAX - (d)->len)) {                                       \
+                       zend_error(E_ERROR, "String size overflow");                    \
+               }                                                                                                                       \
+               newlen = (d)->len + (n);                                                                        \
+               if (newlen >= (d)->a) {                                                                         \
+                       (d)->a = newlen + SMART_STRING_PREALLOC;                                \
+                       SMART_STRING_DO_REALLOC(d, what);                                               \
+               }                                                                                                                       \
+       }                                                                                                                               \
+} while (0)
+
+#define smart_string_alloc(d, n, what) \
+       smart_string_alloc4((d), (n), (what), newlen)
+
+/* wrapper */
+
+#define smart_string_appends_ex(dest, src, what) \
+       smart_string_appendl_ex((dest), (src), strlen(src), (what))
+#define smart_string_appends(dest, src) \
+       smart_string_appendl((dest), (src), strlen(src))
+
+#define smart_string_appendc(dest, c) \
+       smart_string_appendc_ex((dest), (c), 0)
+#define smart_string_free(s) \
+       smart_string_free_ex((s), 0)
+#define smart_string_appendl(dest, src, len) \
+       smart_string_appendl_ex((dest), (src), (len), 0)
+#define smart_string_append(dest, src) \
+       smart_string_append_ex((dest), (src), 0)
+#define smart_string_append_long(dest, val) \
+       smart_string_append_long_ex((dest), (val), 0)
+#define smart_string_append_unsigned(dest, val) \
+       smart_string_append_unsigned_ex((dest), (val), 0)
+
+#define smart_string_appendc_ex(dest, ch, what) do {                                   \
+       size_t __nl;                                                                                                    \
+       smart_string_alloc4((dest), 1, (what), __nl);                                           \
+       (dest)->len = __nl;                                                                                             \
+       ((unsigned char *) (dest)->c)[(dest)->len - 1] = (ch);                  \
+} while (0)
+
+#define smart_string_free_ex(s, what) do {                                                             \
+       smart_string *__s = (smart_string *) (s);                                                               \
+       if (__s->c) {                                                                                                   \
+               pefree(__s->c, what);                                                                           \
+               __s->c = NULL;                                                                                          \
+       }                                                                                                                               \
+       __s->a = __s->len = 0;                                                                                  \
+} while (0)
+
+#define smart_string_appendl_ex(dest, src, nlen, what) do {                    \
+       size_t __nl;                                                                                                    \
+       smart_string *__dest = (smart_string *) (dest);                                         \
+                                                                                                                                       \
+       smart_string_alloc4(__dest, (nlen), (what), __nl);                                      \
+       memcpy(__dest->c + __dest->len, (src), (nlen));                                 \
+       __dest->len = __nl;                                                                                             \
+} while (0)
+
+#define smart_string_append_generic_ex(dest, num, type, vartype, func) do {    \
+       char __b[32];                                                                                                                   \
+       char *__t = zend_print##func##_to_buf(__b + sizeof(__b) - 1, (num));    \
+       smart_string_appendl_ex((dest), __t, __b + sizeof(__b) - 1 - __t, (type));      \
+} while (0)
+
+#define smart_string_append_unsigned_ex(dest, num, type) \
+       smart_string_append_generic_ex((dest), (num), (type), zend_ulong, _ulong)
+
+#define smart_string_append_long_ex(dest, num, type) \
+       smart_string_append_generic_ex((dest), (num), (type), zend_ulong, _long)
+
+#define smart_string_append_ex(dest, src, what) \
+       smart_string_appendl_ex((dest), ((smart_string *)(src))->c, \
+               ((smart_string *)(src))->len, (what));
+
+
+#define smart_string_setl(dest, src, nlen) do {                                                \
+       (dest)->len = (nlen);                                                                                   \
+       (dest)->a = (nlen) + 1;                                                                                 \
+       (dest)->c = (char *) (src);                                                                             \
+} while (0)
+
+#define smart_string_sets(dest, src) \
+       smart_string_setl((dest), (src), strlen(src));
+
+#endif
diff --git a/Zend/zend_smart_string_public.h b/Zend/zend_smart_string_public.h
new file mode 100644 (file)
index 0000000..dabc359
--- /dev/null
@@ -0,0 +1,33 @@
+/*
+   +----------------------------------------------------------------------+
+   | PHP Version 7                                                        |
+   +----------------------------------------------------------------------+
+   | Copyright (c) 1997-2016 The PHP Group                                |
+   +----------------------------------------------------------------------+
+   | This source file is subject to version 3.01 of the PHP license,      |
+   | that is bundled with this package in the file LICENSE, and is        |
+   | available through the world-wide-web at the following url:           |
+   | http://www.php.net/license/3_01.txt                                  |
+   | If you did not receive a copy of the PHP license and are unable to   |
+   | obtain it through the world-wide-web, please send a note to          |
+   | license@php.net so we can mail you a copy immediately.               |
+   +----------------------------------------------------------------------+
+   | Author: Sascha Schumann <sascha@schumann.cx>                         |
+   |         Xinchen Hui <laruence@php.net>                               |
+   +----------------------------------------------------------------------+
+ */
+
+/* $Id$ */
+
+#ifndef PHP_SMART_STRING_PUBLIC_H
+#define PHP_SMART_STRING_PUBLIC_H
+
+#include <sys/types.h>
+
+typedef struct {
+       char *c;
+       size_t len;
+       size_t a;
+} smart_string;
+
+#endif
index b8db1640763a2dbc4d785ba4db50c534e31f30d8..fac844ae7ad476e353c12f39179eace132e406c9 100644 (file)
    +----------------------------------------------------------------------+
  */
 
-/* $Id$ */
+/* Header moved to Zend. This file is retained for BC. */
+#include "zend_smart_string.h"
 
-#ifndef PHP_SMART_STRING_H
-#define PHP_SMART_STRING_H
-
-#include "php_smart_string_public.h"
-
-#include <stdlib.h>
-#ifndef SMART_STR_USE_REALLOC
-#include <zend.h>
-#endif
-
-#define smart_string_0(x) do {                                                                         \
-       if ((x)->c) {                                                                                                   \
-               (x)->c[(x)->len] = '\0';                                                                        \
-       }                                                                                                                               \
-} while (0)
-
-#ifndef SMART_STRING_PREALLOC
-#define SMART_STRING_PREALLOC 128
-#endif
-
-#ifndef SMART_STRING_START_SIZE
-#define SMART_STRING_START_SIZE 78
-#endif
-
-#ifdef SMART_STRING_USE_REALLOC
-#define SMART_STRING_REALLOC(a,b,c) realloc((a),(b))
-#else
-#define SMART_STRING_REALLOC(a,b,c) perealloc((a),(b),(c))
-#endif
-
-#define SMART_STRING_DO_REALLOC(d, what) \
-       (d)->c = SMART_STRING_REALLOC((d)->c, (d)->a + 1, (what))
-
-#define smart_string_alloc4(d, n, what, newlen) do {                           \
-       if (!(d)->c) {                                                                                                  \
-               (d)->len = 0;                                                                                           \
-               newlen = (n);                                                                                           \
-               (d)->a = newlen < SMART_STRING_START_SIZE                                       \
-                               ? SMART_STRING_START_SIZE                                                       \
-                               : newlen + SMART_STRING_PREALLOC;                                       \
-               SMART_STRING_DO_REALLOC(d, what);                                                       \
-       } else {                                                                                                                \
-               if(UNEXPECTED((size_t)n > SIZE_MAX - (d)->len)) {                                       \
-                       zend_error(E_ERROR, "String size overflow");                    \
-               }                                                                                                                       \
-               newlen = (d)->len + (n);                                                                        \
-               if (newlen >= (d)->a) {                                                                         \
-                       (d)->a = newlen + SMART_STRING_PREALLOC;                                \
-                       SMART_STRING_DO_REALLOC(d, what);                                               \
-               }                                                                                                                       \
-       }                                                                                                                               \
-} while (0)
-
-#define smart_string_alloc(d, n, what) \
-       smart_string_alloc4((d), (n), (what), newlen)
-
-/* wrapper */
-
-#define smart_string_appends_ex(dest, src, what) \
-       smart_string_appendl_ex((dest), (src), strlen(src), (what))
-#define smart_string_appends(dest, src) \
-       smart_string_appendl((dest), (src), strlen(src))
-
-#define smart_string_appendc(dest, c) \
-       smart_string_appendc_ex((dest), (c), 0)
-#define smart_string_free(s) \
-       smart_string_free_ex((s), 0)
-#define smart_string_appendl(dest, src, len) \
-       smart_string_appendl_ex((dest), (src), (len), 0)
-#define smart_string_append(dest, src) \
-       smart_string_append_ex((dest), (src), 0)
-#define smart_string_append_long(dest, val) \
-       smart_string_append_long_ex((dest), (val), 0)
-#define smart_string_append_unsigned(dest, val) \
-       smart_string_append_unsigned_ex((dest), (val), 0)
-
-#define smart_string_appendc_ex(dest, ch, what) do {                                   \
-       size_t __nl;                                                                                                    \
-       smart_string_alloc4((dest), 1, (what), __nl);                                           \
-       (dest)->len = __nl;                                                                                             \
-       ((unsigned char *) (dest)->c)[(dest)->len - 1] = (ch);                  \
-} while (0)
-
-#define smart_string_free_ex(s, what) do {                                                             \
-       smart_string *__s = (smart_string *) (s);                                                               \
-       if (__s->c) {                                                                                                   \
-               pefree(__s->c, what);                                                                           \
-               __s->c = NULL;                                                                                          \
-       }                                                                                                                               \
-       __s->a = __s->len = 0;                                                                                  \
-} while (0)
-
-#define smart_string_appendl_ex(dest, src, nlen, what) do {                    \
-       size_t __nl;                                                                                                    \
-       smart_string *__dest = (smart_string *) (dest);                                         \
-                                                                                                                                       \
-       smart_string_alloc4(__dest, (nlen), (what), __nl);                                      \
-       memcpy(__dest->c + __dest->len, (src), (nlen));                                 \
-       __dest->len = __nl;                                                                                             \
-} while (0)
-
-#define smart_string_append_generic_ex(dest, num, type, vartype, func) do {    \
-       char __b[32];                                                                                                                   \
-       char *__t = zend_print##func##_to_buf(__b + sizeof(__b) - 1, (num));    \
-       smart_string_appendl_ex((dest), __t, __b + sizeof(__b) - 1 - __t, (type));      \
-} while (0)
-
-#define smart_string_append_unsigned_ex(dest, num, type) \
-       smart_string_append_generic_ex((dest), (num), (type), zend_ulong, _ulong)
-
-#define smart_string_append_long_ex(dest, num, type) \
-       smart_string_append_generic_ex((dest), (num), (type), zend_ulong, _long)
-
-#define smart_string_append_ex(dest, src, what) \
-       smart_string_appendl_ex((dest), ((smart_string *)(src))->c, \
-               ((smart_string *)(src))->len, (what));
-
-
-#define smart_string_setl(dest, src, nlen) do {                                                \
-       (dest)->len = (nlen);                                                                                   \
-       (dest)->a = (nlen) + 1;                                                                                 \
-       (dest)->c = (char *) (src);                                                                             \
-} while (0)
-
-#define smart_string_sets(dest, src) \
-       smart_string_setl((dest), (src), strlen(src));
-
-#endif
index dabc3596762eb36f67b71bfafd9ded14a9b6f5fa..2696d4eb0d178172eb3a3a7e5a5ca29be48696f4 100644 (file)
    +----------------------------------------------------------------------+
  */
 
-/* $Id$ */
+/* Header moved to Zend. This file is retained for BC. */
+#include "zend_smart_string_public.h"
 
-#ifndef PHP_SMART_STRING_PUBLIC_H
-#define PHP_SMART_STRING_PUBLIC_H
-
-#include <sys/types.h>
-
-typedef struct {
-       char *c;
-       size_t len;
-       size_t a;
-} smart_string;
-
-#endif
index 9cdaeccb79d2da226e0db1759ab0bc6d4498781c..97df0c4fce447021912ed6eb7978031e30a62053 100644 (file)
@@ -33,7 +33,7 @@
 #include "php_variables.h"
 #include "rfc1867.h"
 #include "ext/standard/php_string.h"
-#include "ext/standard/php_smart_string.h"
+#include "zend_smart_string.h"
 
 #if defined(PHP_WIN32) && !defined(HAVE_ATOLL)
 # define atoll(s) _atoi64(s)
index 73a5ff52e3fc8add467167395d2244a87cd831b6..2d24dbddeb7b826a14ca69e31d19c621210f444b 100644 (file)
 #define EXPONENT_LENGTH 10
 
 #include "zend_smart_str.h"
-#include "ext/standard/php_smart_string.h"
+#include "zend_smart_string.h"
 
 /* {{{ macros */