summaryrefslogtreecommitdiff
path: root/ext/wddx/wddx.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/wddx/wddx.c')
-rw-r--r--ext/wddx/wddx.c9
1 files changed, 3 insertions, 6 deletions
diff --git a/ext/wddx/wddx.c b/ext/wddx/wddx.c
index ed838504a6..22dbfc1c35 100644
--- a/ext/wddx/wddx.c
+++ b/ext/wddx/wddx.c
@@ -476,9 +476,8 @@ static void php_wddx_serialize_object(wddx_packet *packet, zval *obj)
if (*ent == obj)
continue;
- if (zend_hash_get_current_key(HASH_OF(obj), &key, &idx) == HASH_KEY_IS_STRING) {
+ if (zend_hash_get_current_key(HASH_OF(obj), &key, &idx, 0) == HASH_KEY_IS_STRING) {
php_wddx_serialize_var(packet, *ent, key);
- efree(key);
} else {
sprintf(tmp_buf, "%ld", idx);
php_wddx_serialize_var(packet, *ent, tmp_buf);
@@ -511,11 +510,10 @@ static void php_wddx_serialize_array(wddx_packet *packet, zval *arr)
zend_hash_get_current_data(target_hash, (void**)&ent) == SUCCESS;
zend_hash_move_forward(target_hash)) {
- type = zend_hash_get_current_key(target_hash, &key, &idx);
+ type = zend_hash_get_current_key(target_hash, &key, &idx, 0);
if (type == HASH_KEY_IS_STRING) {
is_struct = 1;
- efree(key);
break;
}
@@ -541,11 +539,10 @@ static void php_wddx_serialize_array(wddx_packet *packet, zval *arr)
continue;
if (is_struct) {
- ent_type = zend_hash_get_current_key(target_hash, &key, &idx);
+ ent_type = zend_hash_get_current_key(target_hash, &key, &idx, 0);
if (ent_type == HASH_KEY_IS_STRING) {
php_wddx_serialize_var(packet, *ent, key);
- efree(key);
} else {
sprintf(tmp_buf, "%ld", idx);
php_wddx_serialize_var(packet, *ent, tmp_buf);