Initialize zvals

This commit is contained in:
Dmitry Stogov 2014-05-16 19:43:49 +04:00
parent e159955d15
commit e743089d55

View file

@ -1250,6 +1250,7 @@ static void model_to_zval_any(zval *ret, xmlNodePtr node TSRMLS_DC)
while (node != NULL) {
if (get_zval_property(ret, (char*)node->name, &rv TSRMLS_CC) == NULL) {
ZVAL_NULL(&val);
master_to_zval(&val, get_conversion(XSD_ANYXML), node TSRMLS_CC);
if (any && Z_TYPE_P(any) != IS_ARRAY) {
@ -1268,6 +1269,7 @@ static void model_to_zval_any(zval *ret, xmlNodePtr node TSRMLS_DC)
while (node->next != NULL) {
zval val2;
ZVAL_NULL(&val2);
master_to_zval(&val2, get_conversion(XSD_ANYXML), node->next TSRMLS_CC);
if (Z_TYPE(val2) != IS_STRING || *Z_STRVAL(val) != '<') {
break;
@ -1329,6 +1331,7 @@ static void model_to_zval_object(zval *ret, sdlContentModelPtr model, xmlNodePtr
zval val;
xmlNodePtr r_node;
ZVAL_NULL(&val);
r_node = check_and_resolve_href(node);
if (r_node && r_node->children && r_node->children->content) {
if (model->u.element->fixed && strcmp(model->u.element->fixed, (char*)r_node->children->content) != 0) {
@ -1560,6 +1563,7 @@ static zval *to_zval_object_ex(zval *ret, encodeTypePtr type, xmlNodePtr data, z
dummy = xmlNewNode(NULL, BAD_CAST("BOGUS"));
text = xmlNewText(BAD_CAST(str_val));
xmlAddChild(dummy, text);
ZVAL_NULL(&data);
master_to_zval(&data, attr->encode, dummy TSRMLS_CC);
xmlFreeNode(dummy);
set_zval_property(ret, attr->name, &data TSRMLS_CC);
@ -1583,6 +1587,7 @@ static zval *to_zval_object_ex(zval *ret, encodeTypePtr type, xmlNodePtr data, z
zval tmpVal, rv;
zval *prop;
ZVAL_NULL(&tmpVal);
master_to_zval(&tmpVal, NULL, trav TSRMLS_CC);
prop = get_zval_property(ret, (char*)trav->name, &rv TSRMLS_CC);
@ -2635,6 +2640,7 @@ static zval *to_zval_array(zval *ret, encodeTypePtr type, xmlNodePtr data TSRMLS
zval tmpVal, *ar;
xmlAttrPtr position = get_attribute(trav->properties,"position");
ZVAL_NULL(&tmpVal);
master_to_zval(&tmpVal, enc, trav TSRMLS_CC);
if (position != NULL && position->children && position->children->content) {
char* tmp = strrchr((char*)position->children->content, '[');
@ -2763,7 +2769,9 @@ static zval *to_zval_map(zval *ret, encodeTypePtr type, xmlNodePtr data TSRMLS_D
soap_error0(E_ERROR, "Encoding: Can't decode apache map, missing value");
}
ZVAL_NULL(&key);
master_to_zval(&key, NULL, xmlKey TSRMLS_CC);
ZVAL_NULL(&value);
master_to_zval(&value, NULL, xmlValue TSRMLS_CC);
if (Z_TYPE(key) == IS_STRING) {