From 5e57f973cc932264229027df50cdae97af2db09e Mon Sep 17 00:00:00 2001 From: Wez Furlong Date: Fri, 9 Jan 2004 15:31:09 +0000 Subject: [PATCH] let soap build with php5 --- ext/soap/config.w32 | 12 ++++-------- ext/soap/php_encoding.c | 1 + ext/soap/php_schema.c | 1 + ext/soap/php_sdl.c | 4 ++++ ext/soap/php_soap.h | 4 ++-- ext/soap/soap.c | 7 ++++--- 6 files changed, 16 insertions(+), 13 deletions(-) diff --git a/ext/soap/config.w32 b/ext/soap/config.w32 index f7f5090cbb..f579f32a04 100644 --- a/ext/soap/config.w32 +++ b/ext/soap/config.w32 @@ -4,15 +4,11 @@ ARG_ENABLE("soap", "SOAP support", "no"); if (PHP_SOAP != "no" && PHP_LIBXML == "yes") { - if (PHP_VERSION > 4) { - WARNING('soap does not yet compile with php >= 5'); - } else { - EXTENSION('soap', 'soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c'); - AC_DEFINE('HAVE_PHP_SOAP', 1); + EXTENSION('soap', 'soap.c php_encoding.c php_http.c php_packet_soap.c php_schema.c php_sdl.c php_xml.c'); + AC_DEFINE('HAVE_PHP_SOAP', 1); - if (!PHP_SOAP_SHARED) { - ADD_FLAG('CFLAGS_SOAP', "/D LIBXML_STATIC "); - } + if (!PHP_SOAP_SHARED) { + ADD_FLAG('CFLAGS_SOAP', "/D LIBXML_STATIC "); } } diff --git a/ext/soap/php_encoding.c b/ext/soap/php_encoding.c index bd6ec43978..b5f3b96fe7 100644 --- a/ext/soap/php_encoding.c +++ b/ext/soap/php_encoding.c @@ -1429,6 +1429,7 @@ smart_str *build_soap_action(zval *this_ptr, char *soapaction) { zval **uri; smart_str *tmp; + TSRMLS_FETCH(); tmp = emalloc(sizeof(smart_str)); memset(tmp, 0, sizeof(smart_str)); diff --git a/ext/soap/php_schema.c b/ext/soap/php_schema.c index 647accc19b..5fa5a5ee91 100644 --- a/ext/soap/php_schema.c +++ b/ext/soap/php_schema.c @@ -741,6 +741,7 @@ static int schema_complexType(sdlPtr *sdl, xmlAttrPtr tsn, xmlNodePtr compType, { xmlNodePtr content; xmlAttrPtr attrs, name, ns; + TSRMLS_FETCH(); attrs = compType->properties; ns = get_attribute(attrs, "targetNamespace"); diff --git a/ext/soap/php_sdl.c b/ext/soap/php_sdl.c index cc1e719497..01c8272c7f 100644 --- a/ext/soap/php_sdl.c +++ b/ext/soap/php_sdl.c @@ -108,6 +108,7 @@ zval *sdl_guess_convert_zval(encodeType enc, xmlNodePtr data) if (memcmp(&type->encode->details,&enc,sizeof(enc))!=0) { return master_to_zval(type->encode, data); } else { + TSRMLS_FETCH(); return master_to_zval(get_conversion(UNKNOWN_TYPE), data); } } @@ -146,6 +147,7 @@ xmlNodePtr sdl_guess_convert_xml(encodeType enc, zval *data, int style) if (memcmp(&type->encode->details,&enc,sizeof(enc))!=0) { ret = master_to_xml(type->encode, data, style); } else { + TSRMLS_FETCH(); ret = master_to_xml(get_conversion(UNKNOWN_TYPE), data, style); } } @@ -202,6 +204,7 @@ xmlNodePtr sdl_to_xml_object(sdlTypePtr type, zval *data, int style) { xmlNodePtr ret; sdlTypePtr *t, tmp; + TSRMLS_FETCH(); ret = xmlNewNode(NULL, "BOGUS"); FIND_ZVAL_NULL(data, ret, style); @@ -254,6 +257,7 @@ static void add_xml_array_elements(xmlNodePtr xmlParam, if (dimension == 1) { xmlNodePtr xparam; if (enc == NULL) { + TSRMLS_FETCH(); xparam = master_to_xml(get_conversion((*zdata)->type), (*zdata), style); } else { xparam = master_to_xml(enc, (*zdata), style); diff --git a/ext/soap/php_soap.h b/ext/soap/php_soap.h index 24a9b9a8e6..d65dcfdbaf 100644 --- a/ext/soap/php_soap.h +++ b/ext/soap/php_soap.h @@ -180,7 +180,7 @@ extern zend_class_entry* soap_var_class_entry; PS_SERIALIZER_FUNCS(soap); -void clear_soap_fault(zval *obj); +void clear_soap_fault(zval *obj TSRMLS_DC); void set_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault_actor, zval *fault_detail TSRMLS_DC); zval* add_soap_fault(zval *obj, char *fault_code, char *fault_string, char *fault_actor, zval *fault_detail TSRMLS_DC); @@ -201,8 +201,8 @@ void delete_mapping(void *data); void soap_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_property_reference *property_reference); zval soap_get_property_handler(zend_property_reference *property_reference); int soap_set_property_handler(zend_property_reference *property_reference, zval *value); -void soap_destructor(void *jobject); #endif +void soap_destructor(void *jobject); void deseralize_function_call(sdlPtr sdl, xmlDocPtr request, zval *function_name, int *num_params, zval **parameters[], int *version TSRMLS_DC); xmlDocPtr seralize_response_call(sdlFunctionPtr function, char *function_name,char *uri,zval *ret, int version TSRMLS_DC); diff --git a/ext/soap/soap.c b/ext/soap/soap.c index 8b87f099f4..a46bc23a08 100644 --- a/ext/soap/soap.c +++ b/ext/soap/soap.c @@ -1392,7 +1392,8 @@ static void do_soap_call(zval* thisObj, int function_len, int arg_count, zval** real_args, - zval* return_value) + zval* return_value + TSRMLS_DC) { zval **tmp; zval **trace; @@ -1420,7 +1421,7 @@ static void do_soap_call(zval* thisObj, FETCH_SDL_RES(sdl,tmp); } - clear_soap_fault(thisObj); + clear_soap_fault(thisObj TSRMLS_CC); zend_try { SOAP_GLOBAL(sdl) = sdl; @@ -1713,7 +1714,7 @@ void soap_call_function_handler(INTERNAL_FUNCTION_PARAMETERS, zend_property_refe } #endif -void clear_soap_fault(zval *obj) +void clear_soap_fault(zval *obj TSRMLS_DC) { if(obj != NULL && obj->type == IS_OBJECT) { /* zend_hash_del(obj->value.obj.properties, "__soap_fault", sizeof("__soap_fault"));*/ -- 2.50.1