Lines Matching refs:s

73 #define IS_INTERNED(s)	ZSTR_IS_INTERNED(s)  in END_EXTERN_C()  argument
77 #define STR_ALLOCA_INIT(str, s, len, use_heap) ZSTR_ALLOCA_INIT(str, s, len, use_heap) in END_EXTERN_C() argument
82 #define ZSTR_IS_INTERNED(s) (GC_FLAGS(s) & IS_STR_INTERNED) in END_EXTERN_C() argument
103 #define ZSTR_ALLOCA_INIT(str, s, len, use_heap) do { \ argument
105 memcpy(ZSTR_VAL(str), (s), (len)); \
111 #define ZSTR_INIT_LITERAL(s, persistent) (zend_string_init((s), strlen(s), (persistent))) argument
115 static zend_always_inline zend_ulong zend_string_hash_val(zend_string *s)
117 return ZSTR_H(s) ? ZSTR_H(s) : zend_string_hash_func(s);
120 static zend_always_inline void zend_string_forget_hash_val(zend_string *s) in zend_string_forget_hash_val() argument
122 ZSTR_H(s) = 0; in zend_string_forget_hash_val()
123 GC_DEL_FLAGS(s, IS_STR_VALID_UTF8); in zend_string_forget_hash_val()
126 static zend_always_inline uint32_t zend_string_refcount(const zend_string *s) in zend_string_refcount() argument
128 if (!ZSTR_IS_INTERNED(s)) { in zend_string_refcount()
129 return GC_REFCOUNT(s); in zend_string_refcount()
134 static zend_always_inline uint32_t zend_string_addref(zend_string *s) in zend_string_addref() argument
136 if (!ZSTR_IS_INTERNED(s)) { in zend_string_addref()
137 return GC_ADDREF(s); in zend_string_addref()
142 static zend_always_inline uint32_t zend_string_delref(zend_string *s) in zend_string_delref() argument
144 if (!ZSTR_IS_INTERNED(s)) { in zend_string_delref()
145 return GC_DELREF(s); in zend_string_delref()
192 static zend_always_inline zend_string *zend_string_copy(zend_string *s) in zend_string_copy() argument
194 if (!ZSTR_IS_INTERNED(s)) { in zend_string_copy()
195 GC_ADDREF(s); in zend_string_copy()
197 return s; in zend_string_copy()
200 static zend_always_inline zend_string *zend_string_dup(zend_string *s, bool persistent) in zend_string_dup() argument
202 if (ZSTR_IS_INTERNED(s)) { in zend_string_dup()
203 return s; in zend_string_dup()
205 return zend_string_init(ZSTR_VAL(s), ZSTR_LEN(s), persistent); in zend_string_dup()
209 static zend_always_inline zend_string *zend_string_separate(zend_string *s, bool persistent) in zend_string_separate() argument
211 if (ZSTR_IS_INTERNED(s) || GC_REFCOUNT(s) > 1) { in zend_string_separate()
212 if (!ZSTR_IS_INTERNED(s)) { in zend_string_separate()
213 GC_DELREF(s); in zend_string_separate()
215 return zend_string_init(ZSTR_VAL(s), ZSTR_LEN(s), persistent); in zend_string_separate()
218 zend_string_forget_hash_val(s); in zend_string_separate()
219 return s; in zend_string_separate()
222 static zend_always_inline zend_string *zend_string_realloc(zend_string *s, size_t len, bool persist… in zend_string_realloc() argument
226 if (!ZSTR_IS_INTERNED(s)) { in zend_string_realloc()
227 if (EXPECTED(GC_REFCOUNT(s) == 1)) { in zend_string_realloc()
228 ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); in zend_string_realloc()
235 memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), MIN(len, ZSTR_LEN(s)) + 1); in zend_string_realloc()
236 if (!ZSTR_IS_INTERNED(s)) { in zend_string_realloc()
237 GC_DELREF(s); in zend_string_realloc()
242 static zend_always_inline zend_string *zend_string_extend(zend_string *s, size_t len, bool persiste… in zend_string_extend() argument
246 ZEND_ASSERT(len >= ZSTR_LEN(s)); in zend_string_extend()
247 if (!ZSTR_IS_INTERNED(s)) { in zend_string_extend()
248 if (EXPECTED(GC_REFCOUNT(s) == 1)) { in zend_string_extend()
249 ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); in zend_string_extend()
256 memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), ZSTR_LEN(s) + 1); in zend_string_extend()
257 if (!ZSTR_IS_INTERNED(s)) { in zend_string_extend()
258 GC_DELREF(s); in zend_string_extend()
263 static zend_always_inline zend_string *zend_string_truncate(zend_string *s, size_t len, bool persis… in zend_string_truncate() argument
267 ZEND_ASSERT(len <= ZSTR_LEN(s)); in zend_string_truncate()
268 if (!ZSTR_IS_INTERNED(s)) { in zend_string_truncate()
269 if (EXPECTED(GC_REFCOUNT(s) == 1)) { in zend_string_truncate()
270 ret = (zend_string *)perealloc(s, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(len)), persistent); in zend_string_truncate()
277 memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), len + 1); in zend_string_truncate()
278 if (!ZSTR_IS_INTERNED(s)) { in zend_string_truncate()
279 GC_DELREF(s); in zend_string_truncate()
284 static zend_always_inline zend_string *zend_string_safe_realloc(zend_string *s, size_t n, size_t m,… in zend_string_safe_realloc() argument
288 if (!ZSTR_IS_INTERNED(s)) { in zend_string_safe_realloc()
289 if (GC_REFCOUNT(s) == 1) { in zend_string_safe_realloc()
290 …ret = (zend_string *)safe_perealloc(s, n, m, ZEND_MM_ALIGNED_SIZE(_ZSTR_STRUCT_SIZE(l)), persisten… in zend_string_safe_realloc()
297 memcpy(ZSTR_VAL(ret), ZSTR_VAL(s), MIN((n * m) + l, ZSTR_LEN(s)) + 1); in zend_string_safe_realloc()
298 if (!ZSTR_IS_INTERNED(s)) { in zend_string_safe_realloc()
299 GC_DELREF(s); in zend_string_safe_realloc()
304 static zend_always_inline void zend_string_free(zend_string *s) in zend_string_free() argument
306 if (!ZSTR_IS_INTERNED(s)) { in zend_string_free()
307 ZEND_ASSERT(GC_REFCOUNT(s) <= 1); in zend_string_free()
308 pefree(s, GC_FLAGS(s) & IS_STR_PERSISTENT); in zend_string_free()
312 static zend_always_inline void zend_string_efree(zend_string *s) in zend_string_efree() argument
314 ZEND_ASSERT(!ZSTR_IS_INTERNED(s)); in zend_string_efree()
315 ZEND_ASSERT(GC_REFCOUNT(s) <= 1); in zend_string_efree()
316 ZEND_ASSERT(!(GC_FLAGS(s) & IS_STR_PERSISTENT)); in zend_string_efree()
317 efree(s); in zend_string_efree()
320 static zend_always_inline void zend_string_release(zend_string *s) in zend_string_release() argument
322 if (!ZSTR_IS_INTERNED(s)) { in zend_string_release()
323 if (GC_DELREF(s) == 0) { in zend_string_release()
324 pefree(s, GC_FLAGS(s) & IS_STR_PERSISTENT); in zend_string_release()
329 static zend_always_inline void zend_string_release_ex(zend_string *s, bool persistent) in zend_string_release_ex() argument
331 if (!ZSTR_IS_INTERNED(s)) { in zend_string_release_ex()
332 if (GC_DELREF(s) == 0) { in zend_string_release_ex()
334 ZEND_ASSERT(GC_FLAGS(s) & IS_STR_PERSISTENT); in zend_string_release_ex()
335 free(s); in zend_string_release_ex()
337 ZEND_ASSERT(!(GC_FLAGS(s) & IS_STR_PERSISTENT)); in zend_string_release_ex()
338 efree(s); in zend_string_release_ex()