21
21
#include "zend_globals.h"
22
22
#include "zend_smart_str_public.h"
23
23
24
- #define smart_str_appends_ex (dest , src , what ) \
25
- smart_str_appendl_ex((dest), (src), strlen(src), (what))
26
- #define smart_str_appends (dest , src ) \
27
- smart_str_appendl((dest), (src), strlen(src))
28
- #define smart_str_extend (dest , len ) \
29
- smart_str_extend_ex((dest), (len), 0)
30
- #define smart_str_appendc (dest , c ) \
31
- smart_str_appendc_ex((dest), (c), 0)
32
- #define smart_str_appendl (dest , src , len ) \
33
- smart_str_appendl_ex((dest), (src), (len), 0)
34
- #define smart_str_append (dest , src ) \
35
- smart_str_append_ex((dest), (src), 0)
36
- #define smart_str_append_smart_str (dest , src ) \
37
- smart_str_append_smart_str_ex((dest), (src), 0)
38
- #define smart_str_sets (dest , src ) \
39
- smart_str_setl((dest), (src), strlen(src));
40
- #define smart_str_append_long (dest , val ) \
41
- smart_str_append_long_ex((dest), (val), 0)
42
- #define smart_str_append_unsigned (dest , val ) \
43
- smart_str_append_unsigned_ex((dest), (val), 0)
44
- #define smart_str_free (dest ) \
45
- smart_str_free_ex((dest), 0)
24
+ ZEND_API inline void smart_str_appendl (smart_str * dest , const char * src , size_t length )
25
+ {
26
+ smart_str_appendl_ex (dest , src , length , 0 );
27
+ }
28
+ ZEND_API inline void smart_str_appends_ex (smart_str * dest , const char * src , bool persistent )
29
+ {
30
+ smart_str_appendl_ex (dest , src , strlen (src ), persistent );
31
+ }
32
+ ZEND_API inline void smart_str_appends (smart_str * dest , const char * src )
33
+ {
34
+ smart_str_appendl_ex (dest , src , strlen (src ), 0 );
35
+ }
36
+ ZEND_API inline void smart_str_append (smart_str * dest , const zend_string * src )
37
+ {
38
+ smart_str_append_ex (dest , src , 0 );
39
+ }
40
+ ZEND_API inline void smart_str_appendc (smart_str * dest , char ch )
41
+ {
42
+ smart_str_appendc_ex (dest , ch , 0 );
43
+ }
44
+ ZEND_API inline void smart_str_append_smart_str (smart_str * dest , const smart_str * src )
45
+ {
46
+ smart_str_append_smart_str_ex (dest , src , 0 );
47
+ }
46
48
47
49
BEGIN_EXTERN_C ()
48
50
@@ -78,6 +80,11 @@ static zend_always_inline char* smart_str_extend_ex(smart_str *dest, size_t len,
78
80
return ret ;
79
81
}
80
82
83
+ ZEND_API inline char * smart_str_extend (smart_str * dest , size_t length )
84
+ {
85
+ return smart_str_extend_ex (dest , length , 0 );
86
+ }
87
+
81
88
static zend_always_inline void smart_str_free_ex (smart_str * str , zend_bool persistent ) {
82
89
if (str -> s ) {
83
90
zend_string_release_ex (str -> s , persistent );
@@ -86,6 +93,11 @@ static zend_always_inline void smart_str_free_ex(smart_str *str, zend_bool persi
86
93
str -> a = 0 ;
87
94
}
88
95
96
+ ZEND_API inline void smart_str_free (smart_str * str )
97
+ {
98
+ smart_str_free_ex (str , 0 );
99
+ }
100
+
89
101
static zend_always_inline void smart_str_0 (smart_str * str ) {
90
102
if (str -> s ) {
91
103
ZSTR_VAL (str -> s )[ZSTR_LEN (str -> s )] = '\0' ;
@@ -136,15 +148,29 @@ static zend_always_inline void smart_str_append_long_ex(smart_str *dest, zend_lo
136
148
smart_str_appendl_ex (dest , result , buf + sizeof (buf ) - 1 - result , persistent );
137
149
}
138
150
151
+ ZEND_API inline void smart_str_append_long (smart_str * dest , zend_long num )
152
+ {
153
+ smart_str_append_long_ex (dest , num , 0 );
154
+ }
155
+
139
156
static zend_always_inline void smart_str_append_unsigned_ex (smart_str * dest , zend_ulong num , zend_bool persistent ) {
140
157
char buf [32 ];
141
158
char * result = zend_print_ulong_to_buf (buf + sizeof (buf ) - 1 , num );
142
159
smart_str_appendl_ex (dest , result , buf + sizeof (buf ) - 1 - result , persistent );
143
160
}
144
161
162
+ ZEND_API inline void smart_str_append_unsigned (smart_str * dest , zend_ulong num )
163
+ {
164
+ smart_str_append_unsigned_ex (dest , num , 0 );
165
+ }
166
+
145
167
static zend_always_inline void smart_str_setl (smart_str * dest , const char * src , size_t len ) {
146
168
smart_str_free (dest );
147
169
smart_str_appendl (dest , src , len );
148
170
}
149
171
172
+ ZEND_API inline void smart_str_sets (smart_str * dest , const char * src )
173
+ {
174
+ smart_str_setl (dest , src , strlen (src ));
175
+ }
150
176
#endif
0 commit comments