dmitry Thu Apr 15 05:35:28 2004 EDT
Modified files:
/php-src/ext/soap soap.c
Log:
Calls to zend_exception_error() were removed.
http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.99&r2=1.100&ty=u
Index: php-src/ext/soap/soap.c
diff -u php-src/ext/soap/soap.c:1.99 php-src/ext/soap/soap.c:1.100
--- php-src/ext/soap/soap.c:1.99 Fri Apr 2 06:12:44 2004
+++ php-src/ext/soap/soap.c Thu Apr 15 05:35:27 2004
@@ -17,7 +17,7 @@
| Dmitry Stogov <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: soap.c,v 1.99 2004/04/02 11:12:44 dmitry Exp $ */
+/* $Id: soap.c,v 1.100 2004/04/15 09:35:27 dmitry Exp $ */
#ifdef HAVE_CONFIG_H
#include "config.h"
@@ -1378,7 +1378,11 @@
Z_OBJCE_P(EG(exception)) ==
soap_fault_class_entry) {
soap_server_fault_ex(function,
EG(exception), NULL TSRMLS_CC);
} else {
- zend_exception_error(EG(exception)
TSRMLS_CC);
+ zval_dtor(&constructor);
+ zval_dtor(&c_ret);
+ zval_ptr_dtor(&tmp_soap);
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
+ goto fail;
}
}
zval_dtor(&constructor);
@@ -1407,7 +1411,12 @@
Z_OBJCE_P(EG(exception)) ==
soap_fault_class_entry) {
soap_server_fault_ex(function,
EG(exception), NULL TSRMLS_CC);
} else {
-
zend_exception_error(EG(exception) TSRMLS_CC);
+ zval_dtor(&constructor);
+ zval_dtor(&c_ret);
+ efree(class_name);
+ zval_ptr_dtor(&tmp_soap);
+ php_end_ob_buffer(0, 0
TSRMLS_CC);
+ goto fail;
}
}
#endif
@@ -1489,7 +1498,10 @@
}
soap_server_fault_ex(function,
EG(exception), h TSRMLS_CC);
} else {
- zend_exception_error(EG(exception) TSRMLS_CC);
+ efree(fn_name);
+ if (soap_obj) {zval_ptr_dtor(&soap_obj);}
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
+ goto fail;
}
#endif
}
@@ -1508,6 +1520,8 @@
if (service->soap_class.persistance !=
SOAP_PERSISTENCE_SESSION) {
zval_ptr_dtor(&soap_obj);
}
+#else
+ zval_ptr_dtor(&soap_obj);
#endif
} else {
call_status = call_user_function(EG(function_table), NULL,
&function_name, &retval, num_params, params TSRMLS_CC);
@@ -1523,7 +1537,9 @@
Z_OBJCE_P(EG(exception)) == soap_fault_class_entry) {
soap_server_fault_ex(function, EG(exception), NULL TSRMLS_CC);
} else {
- zend_exception_error(EG(exception) TSRMLS_CC);
+ if (soap_obj) {zval_ptr_dtor(&soap_obj);}
+ php_end_ob_buffer(0, 0 TSRMLS_CC);
+ goto fail;
}
}
#endif
@@ -1550,25 +1566,6 @@
php_error(E_ERROR, "Function '%s' call failed",
Z_STRVAL(function_name));
}
- /* Free soap headers */
- while (soap_headers != NULL) {
- soapHeader *h = soap_headers;
- int i;
-
- soap_headers = soap_headers->next;
- i = h->num_params;
- while (i > 0) {
- zval_ptr_dtor(&h->parameters[--i]);
- }
- efree(h->parameters);
- zval_dtor(&h->function_name);
- zval_dtor(&h->retval);
- efree(h);
- }
-
- SOAP_GLOBAL(soap_version) = old_soap_version;
- SOAP_GLOBAL(sdl) = old_sdl;
-
/* Flush buffer */
php_end_ob_buffer(0, 0 TSRMLS_CC);
@@ -1587,6 +1584,31 @@
sapi_add_header("Content-Type: text/xml; charset=\"utf-8\"",
sizeof("Content-Type: text/xml; charset=\"utf-8\""), 1);
}
+ xmlFreeDoc(doc_return);
+ php_write(buf, size TSRMLS_CC);
+ xmlFree(buf);
+
+fail:
+ SOAP_GLOBAL(soap_version) = old_soap_version;
+ SOAP_GLOBAL(sdl) = old_sdl;
+
+ /* Free soap headers */
+ zval_dtor(&retval);
+ while (soap_headers != NULL) {
+ soapHeader *h = soap_headers;
+ int i;
+
+ soap_headers = soap_headers->next;
+ i = h->num_params;
+ while (i > 0) {
+ zval_ptr_dtor(&h->parameters[--i]);
+ }
+ efree(h->parameters);
+ zval_dtor(&h->function_name);
+ zval_dtor(&h->retval);
+ efree(h);
+ }
+
/* Free Memory */
if (num_params > 0) {
for (i = 0; i < num_params;i++) {
@@ -1594,14 +1616,7 @@
}
efree(params);
}
-
zval_dtor(&function_name);
- xmlFreeDoc(doc_return);
-
- php_write(buf, size TSRMLS_CC);
- xmlFree(buf);
-
- zval_dtor(&retval);
SOAP_SERVER_END_CODE();
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php