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