summaryrefslogtreecommitdiff
path: root/ext/soap/php_encoding.c
diff options
context:
space:
mode:
authorGeorge Schlossnagle <gschlossnagle@php.net>2005-10-07 05:14:52 +0000
committerGeorge Schlossnagle <gschlossnagle@php.net>2005-10-07 05:14:52 +0000
commitfa3394eccbd0306c2204a62928ad075c122b0744 (patch)
treefded0b04a871a3461ca53f991fd9da87ca172435 /ext/soap/php_encoding.c
parentdec65f584b7768128040f69845398cf0352a5021 (diff)
downloadphp-git-fa3394eccbd0306c2204a62928ad075c122b0744.tar.gz
Permit correct usage of inherited encoders (from restriction/extension
"base" directives) for xml response decoding.
Diffstat (limited to 'ext/soap/php_encoding.c')
-rw-r--r--ext/soap/php_encoding.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c
index 90e614f7b7..17a864d0f8 100644
--- a/ext/soap/php_encoding.c
+++ b/ext/soap/php_encoding.c
@@ -1185,9 +1185,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,6 +1210,7 @@ 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) {