summaryrefslogtreecommitdiff
path: root/Zend
diff options
context:
space:
mode:
authorNikita Popov <nikic@php.net>2014-09-21 20:47:07 +0200
committerNikita Popov <nikic@php.net>2014-09-21 20:58:31 +0200
commita770d29df74515197c76efdf1a64d9794c27b4af (patch)
treed57e1d6237eace03ca05d459ec8aecbca2b89457 /Zend
parent2a7de9fdbba28152fadcdddc2b731d319405e106 (diff)
downloadphp-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.c11
-rw-r--r--Zend/zend_inheritance.c8
-rw-r--r--Zend/zend_smart_str.h8
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);
}
}