From e011229598d8a7110f06bf0aecf965e042633ceb Mon Sep 17 00:00:00 2001 From: Dmitry Stogov Date: Fri, 7 Oct 2005 08:23:35 +0000 Subject: [PATCH] Reverted last George patches --- ext/soap/php_encoding.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index 17a864d0f8..ece66dfa90 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -319,10 +319,6 @@ xmlNodePtr master_to_xml(encodePtr encode, zval *data, int style, xmlNodePtr par node = encode->to_xml_after(&encode->details, node, style); } } - if(!node) { - node = xmlNewNode(NULL,"BOGUS"); - xmlAddChild(parent, node); - } return node; } @@ -1185,9 +1181,9 @@ static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data) if (sdlType->kind == XSD_TYPEKIND_RESTRICTION && sdlType->encode && type != &sdlType->encode->details) { encodePtr enc; + enc = sdlType->encode; while (enc && enc->details.sdl_type && - enc->details.sdl_type->kind != XSD_TYPEKIND_COMPLEX && enc->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE && enc->details.sdl_type->kind != XSD_TYPEKIND_LIST && enc->details.sdl_type->kind != XSD_TYPEKIND_UNION) { @@ -1210,7 +1206,6 @@ static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data) sdlType->encode && type != &sdlType->encode->details) { if (sdlType->encode->details.sdl_type && - sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_COMPLEX && sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE && sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_LIST && sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_UNION) { @@ -1517,6 +1512,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo int i; sdlTypePtr sdlType = type->sdl_type; TSRMLS_FETCH(); + if (!data || Z_TYPE_P(data) == IS_NULL) { xmlParam = xmlNewNode(NULL,"BOGUS"); xmlAddChild(parent, xmlParam); @@ -1539,7 +1535,6 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo enc = sdlType->encode; while (enc && enc->details.sdl_type && - enc->details.sdl_type->kind != XSD_TYPEKIND_COMPLEX && enc->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE && enc->details.sdl_type->kind != XSD_TYPEKIND_LIST && enc->details.sdl_type->kind != XSD_TYPEKIND_UNION) { @@ -1549,9 +1544,12 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo zval *tmp = get_zval_property(data, "_" TSRMLS_CC); if (tmp) { xmlParam = master_to_xml(enc, tmp, style, parent); - } else { + } else if (prop == NULL) { xmlParam = master_to_xml(enc, data, style, parent); - } + } else { + xmlParam = xmlNewNode(NULL,"BOGUS"); + xmlAddChild(parent, xmlParam); + } } else { xmlParam = xmlNewNode(NULL,"BOGUS"); xmlAddChild(parent, xmlParam); @@ -1559,7 +1557,6 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo } else if (sdlType->kind == XSD_TYPEKIND_EXTENSION && sdlType->encode && type != &sdlType->encode->details) { if (sdlType->encode->details.sdl_type && - sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_COMPLEX && sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_SIMPLE && sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_LIST && sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_UNION) { @@ -1569,8 +1566,11 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNo if (tmp) { xmlParam = master_to_xml(sdlType->encode, tmp, style, parent); - } else { + } else if (prop == NULL) { xmlParam = master_to_xml(sdlType->encode, data, style, parent); + } else { + xmlParam = xmlNewNode(NULL,"BOGUS"); + xmlAddChild(parent, xmlParam); } } } else { -- 2.40.0