diff options
author | Nikita Popov <nikic@php.net> | 2014-09-21 20:47:07 +0200 |
---|---|---|
committer | Nikita Popov <nikic@php.net> | 2014-09-21 20:58:31 +0200 |
commit | a770d29df74515197c76efdf1a64d9794c27b4af (patch) | |
tree | d57e1d6237eace03ca05d459ec8aecbca2b89457 /Zend | |
parent | 2a7de9fdbba28152fadcdddc2b731d319405e106 (diff) | |
download | php-git-a770d29df74515197c76efdf1a64d9794c27b4af.tar.gz |
Add smart_str_append for appending zend_strings
Also replaces usages in Zend/ and ext/standard
Diffstat (limited to 'Zend')
-rw-r--r-- | Zend/zend_exceptions.c | 11 | ||||
-rw-r--r-- | Zend/zend_inheritance.c | 8 | ||||
-rw-r--r-- | Zend/zend_smart_str.h | 8 |
3 files changed, 15 insertions, 12 deletions
diff --git a/Zend/zend_exceptions.c b/Zend/zend_exceptions.c index 8d3145ca23..999b6d790e 100644 --- a/Zend/zend_exceptions.c +++ b/Zend/zend_exceptions.c @@ -342,7 +342,7 @@ ZEND_METHOD(error_exception, getSeverity) zend_error(E_WARNING, "Value for %s is no string", key); \ smart_str_appends(str, "[unknown]"); \ } else { \ - smart_str_appendl(str, Z_STRVAL_P(tmp), Z_STRLEN_P(tmp)); \ + smart_str_append(str, Z_STR_P(tmp)); \ } \ } \ } while (0) @@ -454,14 +454,11 @@ static void _build_trace_args(zval *arg, smart_str *str TSRMLS_DC) /* {{{ */ case IS_ARRAY: smart_str_appends(str, "Array, "); break; - case IS_OBJECT: { - zend_string *class_name = zend_get_object_classname(Z_OBJ_P(arg) TSRMLS_CC); - + case IS_OBJECT: smart_str_appends(str, "Object("); - smart_str_appendl(str, class_name->val, class_name->len); + smart_str_append(str, zend_get_object_classname(Z_OBJ_P(arg) TSRMLS_CC)); smart_str_appends(str, "), "); break; - } } } /* }}} */ @@ -492,7 +489,7 @@ static void _build_trace_string(smart_str *str, HashTable *ht, uint32_t num TSRM } else { line = 0; } - smart_str_appendl(str, Z_STRVAL_P(file), Z_STRLEN_P(file)); + smart_str_append(str, Z_STR_P(file)); smart_str_appendc(str, '('); smart_str_append_long(str, line); smart_str_appends(str, "): "); diff --git a/Zend/zend_inheritance.c b/Zend/zend_inheritance.c index 71f5ffa61f..5cc970ee92 100644 --- a/Zend/zend_inheritance.c +++ b/Zend/zend_inheritance.c @@ -334,11 +334,11 @@ static zend_string *zend_get_function_declaration(zend_function *fptr TSRMLS_DC) } if (fptr->common.scope) { - smart_str_appendl(&str, fptr->common.scope->name->val, fptr->common.scope->name->len); + smart_str_append(&str, fptr->common.scope->name); smart_str_appends(&str, "::"); } - smart_str_appendl(&str, fptr->common.function_name->val, fptr->common.function_name->len); + smart_str_append(&str, fptr->common.function_name); smart_str_appendc(&str, '('); if (fptr->common.arg_info) { @@ -409,7 +409,7 @@ static zend_string *zend_get_function_declaration(zend_function *fptr TSRMLS_DC) zval *zv = precv->op2.zv; if (Z_TYPE_P(zv) == IS_CONSTANT) { - smart_str_appendl(&str, Z_STRVAL_P(zv), Z_STRLEN_P(zv)); + smart_str_append(&str, Z_STR_P(zv)); } else if (Z_TYPE_P(zv) == IS_FALSE) { smart_str_appends(&str, "false"); } else if (Z_TYPE_P(zv) == IS_TRUE) { @@ -429,7 +429,7 @@ static zend_string *zend_get_function_declaration(zend_function *fptr TSRMLS_DC) smart_str_appends(&str, "<expression>"); } else { zend_string *zv_str = zval_get_string(zv); - smart_str_appendl(&str, zv_str->val, zv_str->len); + smart_str_append(&str, zv_str); zend_string_release(zv_str); } } diff --git a/Zend/zend_smart_str.h b/Zend/zend_smart_str.h index 501283df31..2724ac7323 100644 --- a/Zend/zend_smart_str.h +++ b/Zend/zend_smart_str.h @@ -38,6 +38,8 @@ smart_str_appendc_ex((dest), (c), 0) #define smart_str_appendl(dest, src, len) \ smart_str_appendl_ex((dest), (src), (len), 0) +#define smart_str_append(dest, src) \ + smart_str_append_ex((dest), (src), 0) #define smart_str_append_smart_str(dest, src) \ smart_str_append_smart_str_ex((dest), (src), 0) #define smart_str_sets(dest, src) \ @@ -92,9 +94,13 @@ static zend_always_inline void smart_str_appendl_ex(smart_str *dest, const char dest->s->len = new_len; } +static zend_always_inline void smart_str_append_ex(smart_str *dest, const zend_string *src, zend_bool persistent) { + smart_str_appendl_ex(dest, src->val, src->len, persistent); +} + static zend_always_inline void smart_str_append_smart_str_ex(smart_str *dest, const smart_str *src, zend_bool persistent) { if (src->s && src->s->len) { - smart_str_appendl_ex(dest, src->s->val, src->s->len, persistent); + smart_str_append_ex(dest, src->s, persistent); } } |