dmitry          Wed Nov  8 10:05:20 2006 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/soap/tests/bugs        bug38536.phpt bug38536.wsdl 

  Modified files:              
    /php-src    NEWS 
    /php-src/ext/soap   php_encoding.c 
  Log:
  Fixed bug #38536 (SOAP returns an array of values instead of an object)
  
  
http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.337&r2=1.2027.2.547.2.338&diff_format=u
Index: php-src/NEWS
diff -u php-src/NEWS:1.2027.2.547.2.337 php-src/NEWS:1.2027.2.547.2.338
--- php-src/NEWS:1.2027.2.547.2.337     Tue Nov  7 20:24:04 2006
+++ php-src/NEWS        Wed Nov  8 10:05:19 2006
@@ -40,6 +40,8 @@
   read valid db). (Marcus)
 - Fixed bug #38680 (Added missing handling of basic types in json_decode).
   (Ilia) 
+- Fixed bug #38536 (SOAP returns an array of values instead of an object).
+  (Dmitry)
 - Fixed bug #33282 (Re-assignment by reference does not clear the is_ref flag)
   (Ilia,Dmitry, Matt Wilmas)
 
http://cvs.php.net/viewvc.cgi/php-src/ext/soap/php_encoding.c?r1=1.103.2.21.2.14&r2=1.103.2.21.2.15&diff_format=u
Index: php-src/ext/soap/php_encoding.c
diff -u php-src/ext/soap/php_encoding.c:1.103.2.21.2.14 
php-src/ext/soap/php_encoding.c:1.103.2.21.2.15
--- php-src/ext/soap/php_encoding.c:1.103.2.21.2.14     Mon Nov  6 13:22:49 2006
+++ php-src/ext/soap/php_encoding.c     Wed Nov  8 10:05:19 2006
@@ -17,7 +17,7 @@
   |          Dmitry Stogov <[EMAIL PROTECTED]>                             |
   +----------------------------------------------------------------------+
 */
-/* $Id: php_encoding.c,v 1.103.2.21.2.14 2006/11/06 13:22:49 dmitry Exp $ */
+/* $Id: php_encoding.c,v 1.103.2.21.2.15 2006/11/08 10:05:19 dmitry Exp $ */
 
 #include <time.h>
 
@@ -1137,13 +1137,14 @@
 
                                if (node) {
                                        zval *val;
+                                       xmlNodePtr r_node;
 
-                                       node = check_and_resolve_href(node);
-                                       if (node && node->children && 
node->children->content) {
-                                               if (model->u.element->fixed && 
strcmp(model->u.element->fixed, (char*)node->children->content) != 0) {
-                                                       soap_error3(E_ERROR, 
"Encoding: Element '%s' has fixed value '%s' (value '%s' is not allowed)", 
model->u.element->name, model->u.element->fixed, node->children->content);
+                                       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) {
+                                                       soap_error3(E_ERROR, 
"Encoding: Element '%s' has fixed value '%s' (value '%s' is not allowed)", 
model->u.element->name, model->u.element->fixed, r_node->children->content);
                                                }
-                                               val = 
master_to_zval(model->u.element->encode, node);
+                                               val = 
master_to_zval(model->u.element->encode, r_node);
                                        } else if (model->u.element->fixed) {
                                                xmlNodePtr dummy = 
xmlNewNode(NULL, BAD_CAST("BOGUS"));
                                                xmlNodeSetContent(dummy, 
BAD_CAST(model->u.element->fixed));
@@ -1155,7 +1156,7 @@
                                                val = 
master_to_zval(model->u.element->encode, dummy);
                                                xmlFreeNode(dummy);
                                        } else {
-                                               val = 
master_to_zval(model->u.element->encode, node);
+                                               val = 
master_to_zval(model->u.element->encode, r_node);
                                        }
                                        if ((node = get_node(node->next, 
model->u.element->name)) != NULL) {
                                                zval *array;

http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/bug38536.phpt?view=markup&rev=1.1
Index: php-src/ext/soap/tests/bugs/bug38536.phpt
+++ php-src/ext/soap/tests/bugs/bug38536.phpt

http://cvs.php.net/viewvc.cgi/php-src/ext/soap/tests/bugs/bug38536.wsdl?view=markup&rev=1.1
Index: php-src/ext/soap/tests/bugs/bug38536.wsdl
+++ php-src/ext/soap/tests/bugs/bug38536.wsdl

-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to