]> granicus.if.org Git - php/commitdiff
Permit correct usage of inherited encoders (from restriction/extension
authorGeorge Schlossnagle <gschlossnagle@php.net>
Fri, 7 Oct 2005 05:14:52 +0000 (05:14 +0000)
committerGeorge Schlossnagle <gschlossnagle@php.net>
Fri, 7 Oct 2005 05:14:52 +0000 (05:14 +0000)
"base" directives) for xml response decoding.

ext/soap/php_encoding.c

index 90e614f7b71d4196f499c63204197abf665fa83a..17a864d0f88b7e7871c9935c0c63bc3ab7d52f77 100644 (file)
@@ -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) {