mirror of
https://github.com/php/php-src.git
synced 2025-08-21 01:45:16 +02:00
Ported fixed for bug #2103 from PHP3.
This commit is contained in:
parent
f63da06238
commit
3f48a5524d
1 changed files with 9 additions and 2 deletions
|
@ -463,6 +463,7 @@ static void _php_wddx_push_element(void *user_data, const char *name, const char
|
|||
ent.varname = NULL;
|
||||
|
||||
ent.data = (zval *)emalloc(sizeof(zval));
|
||||
ent.data->value.str.val = NULL;
|
||||
ent.data->value.str.len = 0;
|
||||
INIT_PZVAL(ent.data);
|
||||
wddx_stack_push((wddx_stack *)stack, &ent, sizeof(st_entry));
|
||||
|
@ -546,7 +547,7 @@ static void _php_wddx_pop_element(void *user_data, const char *name)
|
|||
ent1->varname, strlen(ent1->varname)+1,
|
||||
&ent1->data, sizeof(zval *), NULL);
|
||||
efree(ent1->varname);
|
||||
} else {
|
||||
} else {
|
||||
zend_hash_next_index_insert(ent2->data->value.ht,
|
||||
&ent1->data,
|
||||
sizeof(zval *), NULL);
|
||||
|
@ -555,6 +556,8 @@ static void _php_wddx_pop_element(void *user_data, const char *name)
|
|||
efree(ent1);
|
||||
}
|
||||
}
|
||||
else if (!strcmp(name, EL_VAR) && stack->varname)
|
||||
efree(stack->varname);
|
||||
}
|
||||
/* }}} */
|
||||
|
||||
|
@ -835,7 +838,11 @@ PHP_FUNCTION(wddx_deserialize)
|
|||
if (ARG_COUNT(ht)!=1 || getParameters(ht, 1, &packet) == FAILURE) {
|
||||
WRONG_PARAM_COUNT;
|
||||
}
|
||||
|
||||
|
||||
convert_to_string(packet);
|
||||
if (packet->value.str.len == 0)
|
||||
return;
|
||||
|
||||
_php_wddx_deserialize(packet, return_value);
|
||||
}
|
||||
/* }}} */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue