summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2005-10-07 08:23:35 +0000
committerDmitry Stogov <dmitry@php.net>2005-10-07 08:23:35 +0000
commite011229598d8a7110f06bf0aecf965e042633ceb (patch)
tree105909a4c435ed1ebdba11beb0204546bb23a14b /ext/soap/php_encoding.c
parent969f05a709f8c5b49fe55a39a6711f1596193662 (diff)
downloadphp-git-e011229598d8a7110f06bf0aecf965e042633ceb.tar.gz
Reverted last George patches
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c22
1 files 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 {