summaryrefslogtreecommitdiff
path: root/ext/simplexml/simplexml.c
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2014-10-22 17:07:44 +0800
committerXinchen Hui <laruence@php.net>2014-10-22 17:07:44 +0800
commita58e9c41889c96c827ca73440677645282d115a6 (patch)
treea1d39e1b9f8ca256c5ad7dbd28749218701976d0 /ext/simplexml/simplexml.c
parentfe8577efb1ecf845b937e877634f10ad95b08b75 (diff)
downloadphp-git-a58e9c41889c96c827ca73440677645282d115a6.tar.gz
Fixed zval copying
Diffstat (limited to 'ext/simplexml/simplexml.c')
-rw-r--r--ext/simplexml/simplexml.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/ext/simplexml/simplexml.c b/ext/simplexml/simplexml.c
index ba70ecca9d..361b0824eb 100644
--- a/ext/simplexml/simplexml.c
+++ b/ext/simplexml/simplexml.c
@@ -267,10 +267,8 @@ static zval *sxe_prop_dim_read(zval *object, zval *member, zend_bool elements, z
name = NULL;
} else {
if (Z_TYPE_P(member) != IS_STRING) {
- tmp_zv = *member;
- zval_copy_ctor(&tmp_zv);
+ ZVAL_STR(&tmp_zv, zval_get_string(member));
member = &tmp_zv;
- convert_to_string(member);
}
name = Z_STRVAL_P(member);
}
@@ -476,9 +474,7 @@ static int sxe_prop_dim_write(zval *object, zval *member, zval *value, zend_bool
}
} else {
if (Z_TYPE_P(member) != IS_STRING) {
- trim_zv = *member;
- zval_copy_ctor(&trim_zv);
- convert_to_string(&trim_zv);
+ ZVAL_STR(&trim_zv, zval_get_string(member));
php_trim(Z_STRVAL(trim_zv), Z_STRLEN(trim_zv), NULL, 0, &tmp_zv, 3 TSRMLS_CC);
zval_dtor(&trim_zv);
member = &tmp_zv;
@@ -736,10 +732,8 @@ static int sxe_prop_dim_exists(zval *object, zval *member, int check_empty, zend
zval tmp_zv;
if (Z_TYPE_P(member) != IS_STRING && Z_TYPE_P(member) != IS_LONG) {
- tmp_zv = *member;
- zval_copy_ctor(&tmp_zv);
+ ZVAL_STR(&tmp_zv, zval_get_string(member));
member = &tmp_zv;
- convert_to_string(member);
}
sxe = Z_SXEOBJ_P(object);
@@ -866,10 +860,8 @@ static void sxe_prop_dim_delete(zval *object, zval *member, zend_bool elements,
int test = 0;
if (Z_TYPE_P(member) != IS_STRING && Z_TYPE_P(member) != IS_LONG) {
- tmp_zv = *member;
- zval_copy_ctor(&tmp_zv);
+ ZVAL_STR(&tmp_zv, zval_get_string(member));
member = &tmp_zv;
- convert_to_string(member);
}
sxe = Z_SXEOBJ_P(object);