--- embedaddon/php/ext/soap/php_encoding.c 2012/02/21 23:48:01 1.1.1.1 +++ embedaddon/php/ext/soap/php_encoding.c 2012/05/29 12:34:42 1.1.1.2 @@ -17,7 +17,7 @@ | Dmitry Stogov | +----------------------------------------------------------------------+ */ -/* $Id: php_encoding.c,v 1.1.1.1 2012/02/21 23:48:01 misho Exp $ */ +/* $Id: php_encoding.c,v 1.1.1.2 2012/05/29 12:34:42 misho Exp $ */ #include @@ -29,60 +29,60 @@ #include "zend_interfaces.h" /* zval type decode */ -static zval *to_zval_double(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_long(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_bool(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_string(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_stringr(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_stringc(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_map(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_null(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_base64(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_hexbin(encodeTypePtr type, xmlNodePtr data); +static zval *to_zval_double(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_long(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_bool(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_string(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_stringr(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_stringc(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_map(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_null(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_base64(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_hexbin(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); -static xmlNodePtr to_xml_long(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_double(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_bool(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +static xmlNodePtr to_xml_long(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_double(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_bool(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); /* String encode */ -static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); /* Null encode */ -static xmlNodePtr to_xml_null(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +static xmlNodePtr to_xml_null(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); /* Array encode */ -static xmlNodePtr guess_array_map(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_map(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +static xmlNodePtr guess_array_map(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_map(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); -static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_list1(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent); +static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_list1(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent TSRMLS_DC); /* Datetime encode/decode */ -static xmlNodePtr to_xml_datetime_ex(encodeTypePtr type, zval *data, char *format, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_datetime(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_time(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_date(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_gyearmonth(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_gyear(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_gmonthday(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_gday(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_gmonth(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_duration(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +static xmlNodePtr to_xml_datetime_ex(encodeTypePtr type, zval *data, char *format, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_datetime(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_time(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_date(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_gyearmonth(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_gyear(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_gmonthday(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_gday(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_gmonth(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_duration(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); -static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data); -static zval *to_zval_array(encodeTypePtr type, xmlNodePtr data); +static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static zval *to_zval_array(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); -static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); -static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); +static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); -static zval *to_zval_any(encodeTypePtr type, xmlNodePtr data); -static xmlNodePtr to_xml_any(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +static zval *to_zval_any(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static xmlNodePtr to_xml_any(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); /* Try and guess for non-wsdl clients and servers */ -static zval *guess_zval_convert(encodeTypePtr type, xmlNodePtr data); -static xmlNodePtr guess_xml_convert(encodeTypePtr type, zval *data, int style, xmlNodePtr parent); +static zval *guess_zval_convert(encodeTypePtr type, xmlNodePtr data TSRMLS_DC); +static xmlNodePtr guess_xml_convert(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC); static int is_map(zval *array); static encodePtr get_array_type(xmlNodePtr node, zval *array, smart_str *out_type TSRMLS_DC); @@ -391,11 +391,10 @@ static zend_bool soap_check_xml_ref(zval **data, xmlNo return 0; } -static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xmlNodePtr parent, int check_class_map) +static xmlNodePtr master_to_xml_int(encodePtr encode, zval *data, int style, xmlNodePtr parent, int check_class_map TSRMLS_DC) { xmlNodePtr node = NULL; int add_type = 0; - TSRMLS_FETCH(); /* Special handling of class SoapVar */ if (data && @@ -440,9 +439,9 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, } if (zend_hash_find(ht, "enc_value", sizeof("enc_value"), (void **)&zdata) == FAILURE) { - node = master_to_xml(enc, NULL, style, parent); + node = master_to_xml(enc, NULL, style, parent TSRMLS_CC); } else { - node = master_to_xml(enc, *zdata, style, parent); + node = master_to_xml(enc, *zdata, style, parent TSRMLS_CC); } if (style == SOAP_ENCODED || (SOAP_GLOBAL(sdl) && encode != enc)) { @@ -519,7 +518,7 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, smart_str_free(&nscat); } if (encode->to_xml) { - node = encode->to_xml(&encode->details, data, style, parent); + node = encode->to_xml(&encode->details, data, style, parent TSRMLS_CC); if (add_type) { set_ns_and_type(node, &encode->details); } @@ -528,15 +527,14 @@ static xmlNodePtr master_to_xml_int(encodePtr encode, return node; } -xmlNodePtr master_to_xml(encodePtr encode, zval *data, int style, xmlNodePtr parent) +xmlNodePtr master_to_xml(encodePtr encode, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { - return master_to_xml_int(encode, data, style, parent, 1); + return master_to_xml_int(encode, data, style, parent, 1 TSRMLS_CC); } -static zval *master_to_zval_int(encodePtr encode, xmlNodePtr data) +static zval *master_to_zval_int(encodePtr encode, xmlNodePtr data TSRMLS_DC) { zval *ret = NULL; - TSRMLS_FETCH(); if (SOAP_GLOBAL(typemap)) { if (encode->details.type_str) { @@ -580,14 +578,13 @@ static zval *master_to_zval_int(encodePtr encode, xmlN } } if (encode->to_zval) { - ret = encode->to_zval(&encode->details, data); + ret = encode->to_zval(&encode->details, data TSRMLS_CC); } return ret; } -zval *master_to_zval(encodePtr encode, xmlNodePtr data) +zval *master_to_zval(encodePtr encode, xmlNodePtr data TSRMLS_DC) { - TSRMLS_FETCH(); data = check_and_resolve_href(data); if (encode == NULL) { @@ -617,14 +614,13 @@ zval *master_to_zval(encodePtr encode, xmlNodePtr data } } } - return master_to_zval_int(encode, data); + return master_to_zval_int(encode, data TSRMLS_CC); } -xmlNodePtr to_xml_user(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +xmlNodePtr to_xml_user(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret = NULL; zval *return_value; - TSRMLS_FETCH(); if (type && type->map && type->map->to_xml) { MAKE_STD_ZVAL(return_value); @@ -652,10 +648,9 @@ xmlNodePtr to_xml_user(encodeTypePtr type, zval *data, return ret; } -zval *to_zval_user(encodeTypePtr type, xmlNodePtr node) +zval *to_zval_user(encodeTypePtr type, xmlNodePtr node TSRMLS_DC) { zval *return_value; - TSRMLS_FETCH(); if (type && type->map && type->map->to_zval) { xmlBufferPtr buf; @@ -684,15 +679,13 @@ zval *to_zval_user(encodeTypePtr type, xmlNodePtr node /* TODO: get rid of "bogus".. ither by passing in the already created xmlnode or passing in the node name */ /* String encode/decode */ -static zval *to_zval_string(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_string(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; MAKE_STD_ZVAL(ret); FIND_XML_NULL(data, ret); if (data && data->children) { if (data->children->type == XML_TEXT_NODE && data->children->next == NULL) { - TSRMLS_FETCH(); - if (SOAP_GLOBAL(encoding) != NULL) { xmlBufferPtr in = xmlBufferCreateStatic(data->children->content, xmlStrlen(data->children->content)); xmlBufferPtr out = xmlBufferCreate(); @@ -719,15 +712,13 @@ static zval *to_zval_string(encodeTypePtr type, xmlNod return ret; } -static zval *to_zval_stringr(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_stringr(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; MAKE_STD_ZVAL(ret); FIND_XML_NULL(data, ret); if (data && data->children) { if (data->children->type == XML_TEXT_NODE && data->children->next == NULL) { - TSRMLS_FETCH(); - whiteSpace_replace(data->children->content); if (SOAP_GLOBAL(encoding) != NULL) { xmlBufferPtr in = xmlBufferCreateStatic(data->children->content, xmlStrlen(data->children->content)); @@ -755,15 +746,13 @@ static zval *to_zval_stringr(encodeTypePtr type, xmlNo return ret; } -static zval *to_zval_stringc(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_stringc(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; MAKE_STD_ZVAL(ret); FIND_XML_NULL(data, ret); if (data && data->children) { if (data->children->type == XML_TEXT_NODE && data->children->next == NULL) { - TSRMLS_FETCH(); - whiteSpace_collapse(data->children->content); if (SOAP_GLOBAL(encoding) != NULL) { xmlBufferPtr in = xmlBufferCreateStatic(data->children->content, xmlStrlen(data->children->content)); @@ -791,7 +780,7 @@ static zval *to_zval_stringc(encodeTypePtr type, xmlNo return ret; } -static zval *to_zval_base64(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_base64(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; char *str; @@ -822,7 +811,7 @@ static zval *to_zval_base64(encodeTypePtr type, xmlNod return ret; } -static zval *to_zval_hexbin(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_hexbin(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; unsigned char *str; @@ -870,12 +859,11 @@ static zval *to_zval_hexbin(encodeTypePtr type, xmlNod return ret; } -static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_string(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret, text; char *str; int new_len; - TSRMLS_FETCH(); ret = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlAddChild(parent, ret); @@ -959,7 +947,7 @@ static xmlNodePtr to_xml_string(encodeTypePtr type, zv return ret; } -static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_base64(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret, text; unsigned char *str; @@ -992,7 +980,7 @@ static xmlNodePtr to_xml_base64(encodeTypePtr type, zv return ret; } -static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { static char hexconvtab[] = "0123456789ABCDEF"; xmlNodePtr ret, text; @@ -1031,7 +1019,7 @@ static xmlNodePtr to_xml_hexbin(encodeTypePtr type, zv return ret; } -static zval *to_zval_double(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_double(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; MAKE_STD_ZVAL(ret); @@ -1072,7 +1060,7 @@ static zval *to_zval_double(encodeTypePtr type, xmlNod return ret; } -static zval *to_zval_long(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_long(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; MAKE_STD_ZVAL(ret); @@ -1105,7 +1093,7 @@ static zval *to_zval_long(encodeTypePtr type, xmlNodeP return ret; } -static xmlNodePtr to_xml_long(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_long(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret; @@ -1136,12 +1124,11 @@ static xmlNodePtr to_xml_long(encodeTypePtr type, zval return ret; } -static xmlNodePtr to_xml_double(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_double(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret; zval tmp; char *str; - TSRMLS_FETCH(); ret = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlAddChild(parent, ret); @@ -1164,7 +1151,7 @@ static xmlNodePtr to_xml_double(encodeTypePtr type, zv return ret; } -static zval *to_zval_bool(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_bool(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; MAKE_STD_ZVAL(ret); @@ -1194,7 +1181,7 @@ static zval *to_zval_bool(encodeTypePtr type, xmlNodeP return ret; } -static xmlNodePtr to_xml_bool(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_bool(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret; @@ -1215,7 +1202,7 @@ static xmlNodePtr to_xml_bool(encodeTypePtr type, zval } /* Null encode/decode */ -static zval *to_zval_null(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_null(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; MAKE_STD_ZVAL(ret); @@ -1223,7 +1210,7 @@ static zval *to_zval_null(encodeTypePtr type, xmlNodeP return ret; } -static xmlNodePtr to_xml_null(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_null(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret; @@ -1241,9 +1228,7 @@ static void set_zval_property(zval* object, char* name old_scope = EG(scope); EG(scope) = Z_OBJCE_P(object); -#ifdef ZEND_ENGINE_2 Z_DELREF_P(val); -#endif add_property_zval(object, name, val); EG(scope) = old_scope; } @@ -1259,7 +1244,7 @@ static zval* get_zval_property(zval* object, char* nam ZVAL_STRING(&member, name, 0); old_scope = EG(scope); EG(scope) = Z_OBJCE_P(object); - data = Z_OBJ_HT_P(object)->read_property(object, &member, BP_VAR_IS TSRMLS_CC); + data = Z_OBJ_HT_P(object)->read_property(object, &member, BP_VAR_IS, 0 TSRMLS_CC); if (data == EG(uninitialized_zval_ptr)) { /* Hack for bug #32455 */ zend_property_info *property_info; @@ -1293,7 +1278,7 @@ static void unset_zval_property(zval* object, char* na ZVAL_STRING(&member, name, 0); old_scope = EG(scope); EG(scope) = Z_OBJCE_P(object); - Z_OBJ_HT_P(object)->unset_property(object, &member TSRMLS_CC); + Z_OBJ_HT_P(object)->unset_property(object, &member, 0 TSRMLS_CC); EG(scope) = old_scope; } else if (Z_TYPE_P(object) == IS_ARRAY) { zend_hash_del(Z_ARRVAL_P(object), name, strlen(name)+1); @@ -1307,7 +1292,7 @@ static void model_to_zval_any(zval *ret, xmlNodePtr no while (node != NULL) { if (get_zval_property(ret, (char*)node->name TSRMLS_CC) == NULL) { - zval* val = master_to_zval(get_conversion(XSD_ANYXML), node); + zval* val = master_to_zval(get_conversion(XSD_ANYXML), node TSRMLS_CC); if (any && Z_TYPE_P(any) != IS_ARRAY) { /* Convert into array */ @@ -1326,7 +1311,7 @@ static void model_to_zval_any(zval *ret, xmlNodePtr no if (Z_TYPE_P(val) == IS_STRING && *Z_STRVAL_P(val) == '<') { name = NULL; while (node->next != NULL) { - zval* val2 = master_to_zval(get_conversion(XSD_ANYXML), node->next); + zval* val2 = master_to_zval(get_conversion(XSD_ANYXML), node->next TSRMLS_CC); if (Z_TYPE_P(val2) != IS_STRING || *Z_STRVAL_P(val) != '<') { break; } @@ -1398,19 +1383,19 @@ static void model_to_zval_object(zval *ret, sdlContent 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, r_node); + val = master_to_zval(model->u.element->encode, r_node TSRMLS_CC); } else if (model->u.element->fixed) { xmlNodePtr dummy = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlNodeSetContent(dummy, BAD_CAST(model->u.element->fixed)); - val = master_to_zval(model->u.element->encode, dummy); + val = master_to_zval(model->u.element->encode, dummy TSRMLS_CC); xmlFreeNode(dummy); } else if (model->u.element->def && !model->u.element->nillable) { xmlNodePtr dummy = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlNodeSetContent(dummy, BAD_CAST(model->u.element->def)); - val = master_to_zval(model->u.element->encode, dummy); + val = master_to_zval(model->u.element->encode, dummy TSRMLS_CC); xmlFreeNode(dummy); } else { - val = master_to_zval(model->u.element->encode, r_node); + val = master_to_zval(model->u.element->encode, r_node TSRMLS_CC); } if ((node = get_node(node->next, model->u.element->name)) != NULL) { zval *array; @@ -1423,19 +1408,19 @@ static void model_to_zval_object(zval *ret, sdlContent 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); } - val = master_to_zval(model->u.element->encode, node); + val = master_to_zval(model->u.element->encode, node TSRMLS_CC); } else if (model->u.element->fixed) { xmlNodePtr dummy = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlNodeSetContent(dummy, BAD_CAST(model->u.element->fixed)); - val = master_to_zval(model->u.element->encode, dummy); + val = master_to_zval(model->u.element->encode, dummy TSRMLS_CC); xmlFreeNode(dummy); } else if (model->u.element->def && !model->u.element->nillable) { xmlNodePtr dummy = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlNodeSetContent(dummy, BAD_CAST(model->u.element->def)); - val = master_to_zval(model->u.element->encode, dummy); + val = master_to_zval(model->u.element->encode, dummy TSRMLS_CC); xmlFreeNode(dummy); } else { - val = master_to_zval(model->u.element->encode, node); + val = master_to_zval(model->u.element->encode, node TSRMLS_CC); } add_next_index_zval(array, val); } while ((node = get_node(node->next, model->u.element->name)) != NULL); @@ -1484,7 +1469,7 @@ static void model_to_zval_object(zval *ret, sdlContent } /* Struct encode/decode */ -static zval *to_zval_object_ex(encodeTypePtr type, xmlNodePtr data, zend_class_entry *pce) +static zval *to_zval_object_ex(encodeTypePtr type, xmlNodePtr data, zend_class_entry *pce TSRMLS_DC) { zval *ret; xmlNodePtr trav; @@ -1492,7 +1477,6 @@ static zval *to_zval_object_ex(encodeTypePtr type, xml sdlTypePtr sdlType = type->sdl_type; zend_class_entry *ce = ZEND_STANDARD_CLASS_DEF_PTR; zval *redo_any = NULL; - TSRMLS_FETCH(); if (pce) { ce = pce; @@ -1528,7 +1512,7 @@ static zval *to_zval_object_ex(encodeTypePtr type, xml } object_init_ex(ret, ce); - base = master_to_zval_int(enc, data); + base = master_to_zval_int(enc, data TSRMLS_CC); set_zval_property(ret, "_", base TSRMLS_CC); } else { ALLOC_INIT_ZVAL(ret); @@ -1560,9 +1544,9 @@ static zval *to_zval_object_ex(encodeTypePtr type, xml (sdlType->encode->details.sdl_type->encode == NULL || (sdlType->encode->details.sdl_type->encode->details.type != IS_ARRAY && sdlType->encode->details.sdl_type->encode->details.type != SOAP_ENC_ARRAY))) { - ret = to_zval_object_ex(&sdlType->encode->details, data, ce); + ret = to_zval_object_ex(&sdlType->encode->details, data, ce TSRMLS_CC); } else { - ret = master_to_zval_int(sdlType->encode, data); + ret = master_to_zval_int(sdlType->encode, data TSRMLS_CC); } if (soap_check_xml_ref(&ret, data TSRMLS_CC)) { return ret; @@ -1581,7 +1565,7 @@ static zval *to_zval_object_ex(encodeTypePtr type, xml } object_init_ex(ret, ce); - base = master_to_zval_int(sdlType->encode, data); + base = master_to_zval_int(sdlType->encode, data TSRMLS_CC); set_zval_property(ret, "_", base TSRMLS_CC); } } else { @@ -1637,7 +1621,7 @@ static zval *to_zval_object_ex(encodeTypePtr type, xml dummy = xmlNewNode(NULL, BAD_CAST("BOGUS")); text = xmlNewText(BAD_CAST(str_val)); xmlAddChild(dummy, text); - data = master_to_zval((*attr)->encode, dummy); + data = master_to_zval((*attr)->encode, dummy TSRMLS_CC); xmlFreeNode(dummy); set_zval_property(ret, (*attr)->name, data TSRMLS_CC); } @@ -1661,7 +1645,7 @@ static zval *to_zval_object_ex(encodeTypePtr type, xml zval *tmpVal; zval *prop; - tmpVal = master_to_zval(NULL, trav); + tmpVal = master_to_zval(NULL, trav TSRMLS_CC); prop = get_zval_property(ret, (char*)trav->name TSRMLS_CC); if (!prop) { @@ -1698,9 +1682,9 @@ static zval *to_zval_object_ex(encodeTypePtr type, xml return ret; } -static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_object(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { - return to_zval_object_ex(type, data, NULL); + return to_zval_object_ex(type, data, NULL TSRMLS_CC); } @@ -1735,7 +1719,7 @@ static int model_to_xml_object(xmlNodePtr node, sdlCon xmlAddChild(node, property); set_xsi_nil(property); } else { - property = master_to_xml(enc, *val, style, node); + property = master_to_xml(enc, *val, style, node TSRMLS_CC); if (property->children && property->children->content && model->u.element->fixed && strcmp(model->u.element->fixed, (char*)property->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, property->children->content); @@ -1758,7 +1742,7 @@ static int model_to_xml_object(xmlNodePtr node, sdlCon } else if (Z_TYPE_P(data) == IS_NULL && model->min_occurs == 0) { return 1; } else { - property = master_to_xml(enc, data, style, node); + property = master_to_xml(enc, data, style, node TSRMLS_CC); if (property->children && property->children->content && model->u.element->fixed && strcmp(model->u.element->fixed, (char*)property->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, property->children->content); @@ -1810,11 +1794,11 @@ static int model_to_xml_object(xmlNodePtr node, sdlCon zend_hash_internal_pointer_reset(ht); while (zend_hash_get_current_data(ht,(void**)&val) == SUCCESS) { - property = master_to_xml(enc, *val, style, node); + property = master_to_xml(enc, *val, style, node TSRMLS_CC); zend_hash_move_forward(ht); } } else { - property = master_to_xml(enc, data, style, node); + property = master_to_xml(enc, data, style, node TSRMLS_CC); } return 1; } else if (model->min_occurs == 0) { @@ -1901,13 +1885,12 @@ static sdlTypePtr model_array_element(sdlContentModelP return NULL; } -static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_object(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr xmlParam; HashTable *prop = NULL; int i; sdlTypePtr sdlType = type->sdl_type; - TSRMLS_FETCH(); if (!data || Z_TYPE_P(data) == IS_NULL) { xmlParam = xmlNewNode(NULL, BAD_CAST("BOGUS")); @@ -1940,9 +1923,9 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zv if (enc) { zval *tmp = get_zval_property(data, "_" TSRMLS_CC); if (tmp) { - xmlParam = master_to_xml(enc, tmp, style, parent); + xmlParam = master_to_xml(enc, tmp, style, parent TSRMLS_CC); } else if (prop == NULL) { - xmlParam = master_to_xml(enc, data, style, parent); + xmlParam = master_to_xml(enc, data, style, parent TSRMLS_CC); } else { xmlParam = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlAddChild(parent, xmlParam); @@ -1959,15 +1942,15 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zv sdlType->encode->details.sdl_type->kind != XSD_TYPEKIND_UNION) { if (prop) prop->nApplyCount++; - xmlParam = master_to_xml(sdlType->encode, data, style, parent); + xmlParam = master_to_xml(sdlType->encode, data, style, parent TSRMLS_CC); if (prop) prop->nApplyCount--; } else { zval *tmp = get_zval_property(data, "_" TSRMLS_CC); if (tmp) { - xmlParam = master_to_xml(sdlType->encode, tmp, style, parent); + xmlParam = master_to_xml(sdlType->encode, tmp, style, parent TSRMLS_CC); } else if (prop == NULL) { - xmlParam = master_to_xml(sdlType->encode, data, style, parent); + xmlParam = master_to_xml(sdlType->encode, data, style, parent TSRMLS_CC); } else { xmlParam = xmlNewNode(NULL, BAD_CAST("BOGUS")); xmlAddChild(parent, xmlParam); @@ -1999,7 +1982,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zv xmlAddChild(xmlParam, property); set_xsi_nil(property); } else { - property = master_to_xml(array_el->encode, *val, style, xmlParam); + property = master_to_xml(array_el->encode, *val, style, xmlParam TSRMLS_CC); } xmlNodeSetName(property, BAD_CAST(array_el->name)); if (style == SOAP_LITERAL && @@ -2025,7 +2008,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zv if (zattr) { xmlNodePtr dummy; - dummy = master_to_xml((*attr)->encode, zattr, SOAP_LITERAL, xmlParam); + dummy = master_to_xml((*attr)->encode, zattr, SOAP_LITERAL, xmlParam TSRMLS_CC); if (dummy->children && dummy->children->content) { if ((*attr)->fixed && strcmp((*attr)->fixed, (char*)dummy->children->content) != 0) { soap_error3(E_ERROR, "Encoding: Attribute '%s' has fixed value '%s' (value '%s' is not allowed)", (*attr)->name, (*attr)->fixed, dummy->children->content); @@ -2076,13 +2059,13 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zv key_type = zend_hash_get_current_key_ex(prop, &str_key, &str_key_len, &index, FALSE, NULL); zend_hash_get_current_data(prop, (void **)&zprop); - property = master_to_xml(get_conversion((*zprop)->type), (*zprop), style, xmlParam); + property = master_to_xml(get_conversion((*zprop)->type), (*zprop), style, xmlParam TSRMLS_CC); if (key_type == HASH_KEY_IS_STRING) { - char *prop_name; + const char *prop_name; if (Z_TYPE_P(data) == IS_OBJECT) { - char *class_name; + const char *class_name; zend_unmangle_property_name(str_key, str_key_len-1, &class_name, &prop_name); } else { @@ -2103,7 +2086,7 @@ static xmlNodePtr to_xml_object(encodeTypePtr type, zv } /* Array encode/decode */ -static xmlNodePtr guess_array_map(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr guess_array_map(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { encodePtr enc = NULL; @@ -2118,7 +2101,7 @@ static xmlNodePtr guess_array_map(encodeTypePtr type, enc = get_conversion(IS_NULL); } - return master_to_xml(enc, data, style, parent); + return master_to_xml(enc, data, style, parent TSRMLS_CC); } static int calc_dimension_12(const char* str) @@ -2221,7 +2204,8 @@ static void add_xml_array_elements(xmlNodePtr xmlParam int dimension , int* dims, zval* data, - int style) + int style + TSRMLS_DC) { int j; @@ -2238,9 +2222,9 @@ static void add_xml_array_elements(xmlNodePtr xmlParam if (zdata) { if (enc == NULL) { - xparam = master_to_xml(get_conversion((*zdata)->type), (*zdata), style, xmlParam); + xparam = master_to_xml(get_conversion((*zdata)->type), (*zdata), style, xmlParam TSRMLS_CC); } else { - xparam = master_to_xml(enc, (*zdata), style, xmlParam); + xparam = master_to_xml(enc, (*zdata), style, xmlParam TSRMLS_CC); } } else { xparam = xmlNewNode(NULL, BAD_CAST("BOGUS")); @@ -2257,9 +2241,9 @@ static void add_xml_array_elements(xmlNodePtr xmlParam } } else { if (zdata) { - add_xml_array_elements(xmlParam, type, enc, ns, dimension-1, dims+1, *zdata, style); + add_xml_array_elements(xmlParam, type, enc, ns, dimension-1, dims+1, *zdata, style TSRMLS_CC); } else { - add_xml_array_elements(xmlParam, type, enc, ns, dimension-1, dims+1, NULL, style); + add_xml_array_elements(xmlParam, type, enc, ns, dimension-1, dims+1, NULL, style TSRMLS_CC); } } zend_hash_move_forward(data->value.ht); @@ -2280,7 +2264,7 @@ static void add_xml_array_elements(xmlNodePtr xmlParam xmlNodeSetName(xparam, BAD_CAST("item")); } } else { - add_xml_array_elements(xmlParam, type, enc, ns, dimension-1, dims+1, NULL, style); + add_xml_array_elements(xmlParam, type, enc, ns, dimension-1, dims+1, NULL, style TSRMLS_CC); } } } @@ -2294,7 +2278,7 @@ static inline int array_num_elements(HashTable* ht) return 0; } -static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_array(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { sdlTypePtr sdl_type = type->sdl_type; sdlTypePtr element_type = NULL; @@ -2306,7 +2290,6 @@ static xmlNodePtr to_xml_array(encodeTypePtr type, zva int* dims; int soap_version; zval *array_copy = NULL; - TSRMLS_FETCH(); soap_version = SOAP_GLOBAL(soap_version); @@ -2561,7 +2544,7 @@ iterator_done: smart_str_free(&array_type); smart_str_free(&array_size); - add_xml_array_elements(xmlParam, element_type, enc, enc?encode_add_ns(xmlParam,enc->details.ns):NULL, dimension, dims, data, style); + add_xml_array_elements(xmlParam, element_type, enc, enc?encode_add_ns(xmlParam,enc->details.ns):NULL, dimension, dims, data, style TSRMLS_CC); efree(dims); } if (style == SOAP_ENCODED) { @@ -2579,7 +2562,7 @@ iterator_done: return xmlParam; } -static zval *to_zval_array(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_array(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret; xmlNodePtr trav; @@ -2593,8 +2576,6 @@ static zval *to_zval_array(encodeTypePtr type, xmlNode sdlExtraAttributePtr *ext; sdlTypePtr elementType; - TSRMLS_FETCH(); - MAKE_STD_ZVAL(ret); FIND_XML_NULL(data, ret); sdl = SOAP_GLOBAL(sdl); @@ -2746,7 +2727,7 @@ static zval *to_zval_array(encodeTypePtr type, xmlNode zval *tmpVal, *ar; xmlAttrPtr position = get_attribute(trav->properties,"position"); - tmpVal = master_to_zval(enc, trav); + tmpVal = master_to_zval(enc, trav TSRMLS_CC); if (position != NULL && position->children && position->children->content) { char* tmp = strrchr((char*)position->children->content, '['); if (tmp == NULL) { @@ -2797,7 +2778,7 @@ static zval *to_zval_array(encodeTypePtr type, xmlNode } /* Map encode/decode */ -static xmlNodePtr to_xml_map(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_map(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr xmlParam; int i; @@ -2839,7 +2820,7 @@ static xmlNodePtr to_xml_map(encodeTypePtr type, zval smart_str_free(&tmp); } - xparam = master_to_xml(get_conversion((*temp_data)->type), (*temp_data), style, item); + xparam = master_to_xml(get_conversion((*temp_data)->type), (*temp_data), style, item TSRMLS_CC); xmlNodeSetName(xparam, BAD_CAST("value")); zend_hash_move_forward(data->value.ht); @@ -2852,7 +2833,7 @@ static xmlNodePtr to_xml_map(encodeTypePtr type, zval return xmlParam; } -static zval *to_zval_map(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_map(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { zval *ret, *key, *value; xmlNodePtr trav, item, xmlKey, xmlValue; @@ -2876,8 +2857,8 @@ static zval *to_zval_map(encodeTypePtr type, xmlNodePt soap_error0(E_ERROR, "Encoding: Can't decode apache map, missing value"); } - key = master_to_zval(NULL, xmlKey); - value = master_to_zval(NULL, xmlValue); + key = master_to_zval(NULL, xmlKey TSRMLS_CC); + value = master_to_zval(NULL, xmlValue TSRMLS_CC); if (Z_TYPE_P(key) == IS_STRING) { zend_symtable_update(Z_ARRVAL_P(ret), Z_STRVAL_P(key), Z_STRLEN_P(key) + 1, &value, sizeof(zval *), NULL); @@ -2896,7 +2877,7 @@ static zval *to_zval_map(encodeTypePtr type, xmlNodePt } /* Unknown encode/decode */ -static xmlNodePtr guess_xml_convert(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr guess_xml_convert(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { encodePtr enc; xmlNodePtr ret; @@ -2906,7 +2887,7 @@ static xmlNodePtr guess_xml_convert(encodeTypePtr type } else { enc = get_conversion(IS_NULL); } - ret = master_to_xml_int(enc, data, style, parent, 0); + ret = master_to_xml_int(enc, data, style, parent, 0 TSRMLS_CC); /* if (style == SOAP_LITERAL && SOAP_GLOBAL(sdl)) { set_ns_and_type(ret, &enc->details); @@ -2915,13 +2896,12 @@ static xmlNodePtr guess_xml_convert(encodeTypePtr type return ret; } -static zval *guess_zval_convert(encodeTypePtr type, xmlNodePtr data) +static zval *guess_zval_convert(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { encodePtr enc = NULL; xmlAttrPtr tmpattr; xmlChar *type_name = NULL; zval *ret; - TSRMLS_FETCH(); data = check_and_resolve_href(data); @@ -2974,7 +2954,7 @@ static zval *guess_zval_convert(encodeTypePtr type, xm } } } - ret = master_to_zval_int(enc, data); + ret = master_to_zval_int(enc, data TSRMLS_CC); if (SOAP_GLOBAL(sdl) && type_name && enc->details.sdl_type) { zval* soapvar; char *ns, *cptype; @@ -2983,9 +2963,7 @@ static zval *guess_zval_convert(encodeTypePtr type, xm MAKE_STD_ZVAL(soapvar); object_init_ex(soapvar, soap_var_class_entry); add_property_long(soapvar, "enc_type", enc->details.type); -#ifdef ZEND_ENGINE_2 Z_DELREF_P(ret); -#endif add_property_zval(soapvar, "enc_value", ret); parse_namespace(type_name, &cptype, &ns); nsptr = xmlSearchNs(data->doc, data, BAD_CAST(ns)); @@ -3001,7 +2979,7 @@ static zval *guess_zval_convert(encodeTypePtr type, xm } /* Time encode/decode */ -static xmlNodePtr to_xml_datetime_ex(encodeTypePtr type, zval *data, char *format, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_datetime_ex(encodeTypePtr type, zval *data, char *format, int style, xmlNodePtr parent TSRMLS_DC) { /* logic hacked from ext/standard/datetime.c */ struct tm *ta, tmbuf; @@ -3065,59 +3043,59 @@ static xmlNodePtr to_xml_datetime_ex(encodeTypePtr typ return xmlParam; } -static xmlNodePtr to_xml_duration(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_duration(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { /* TODO: '-'?P([0-9]+Y)?([0-9]+M)?([0-9]+D)?T([0-9]+H)?([0-9]+M)?([0-9]+S)? */ - return to_xml_string(type, data, style, parent); + return to_xml_string(type, data, style, parent TSRMLS_CC); } -static xmlNodePtr to_xml_datetime(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_datetime(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { - return to_xml_datetime_ex(type, data, "%Y-%m-%dT%H:%M:%S", style, parent); + return to_xml_datetime_ex(type, data, "%Y-%m-%dT%H:%M:%S", style, parent TSRMLS_CC); } -static xmlNodePtr to_xml_time(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_time(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { /* TODO: microsecconds */ - return to_xml_datetime_ex(type, data, "%H:%M:%S", style, parent); + return to_xml_datetime_ex(type, data, "%H:%M:%S", style, parent TSRMLS_CC); } -static xmlNodePtr to_xml_date(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_date(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { - return to_xml_datetime_ex(type, data, "%Y-%m-%d", style, parent); + return to_xml_datetime_ex(type, data, "%Y-%m-%d", style, parent TSRMLS_CC); } -static xmlNodePtr to_xml_gyearmonth(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_gyearmonth(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { - return to_xml_datetime_ex(type, data, "%Y-%m", style, parent); + return to_xml_datetime_ex(type, data, "%Y-%m", style, parent TSRMLS_CC); } -static xmlNodePtr to_xml_gyear(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_gyear(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { - return to_xml_datetime_ex(type, data, "%Y", style, parent); + return to_xml_datetime_ex(type, data, "%Y", style, parent TSRMLS_CC); } -static xmlNodePtr to_xml_gmonthday(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_gmonthday(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { - return to_xml_datetime_ex(type, data, "--%m-%d", style, parent); + return to_xml_datetime_ex(type, data, "--%m-%d", style, parent TSRMLS_CC); } -static xmlNodePtr to_xml_gday(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_gday(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { - return to_xml_datetime_ex(type, data, "---%d", style, parent); + return to_xml_datetime_ex(type, data, "---%d", style, parent TSRMLS_CC); } -static xmlNodePtr to_xml_gmonth(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_gmonth(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { - return to_xml_datetime_ex(type, data, "--%m--", style, parent); + return to_xml_datetime_ex(type, data, "--%m--", style, parent TSRMLS_CC); } -static zval* to_zval_list(encodeTypePtr enc, xmlNodePtr data) { +static zval* to_zval_list(encodeTypePtr enc, xmlNodePtr data TSRMLS_DC) { /*FIXME*/ - return to_zval_stringc(enc, data); + return to_zval_stringc(enc, data TSRMLS_CC); } -static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent) { +static xmlNodePtr to_xml_list(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret; encodePtr list_enc = NULL; @@ -3140,7 +3118,7 @@ static xmlNodePtr to_xml_list(encodeTypePtr enc, zval zend_hash_internal_pointer_reset(ht); while (zend_hash_get_current_data(ht, (void**)&tmp) == SUCCESS) { - xmlNodePtr dummy = master_to_xml(list_enc, *tmp, SOAP_LITERAL, ret); + xmlNodePtr dummy = master_to_xml(list_enc, *tmp, SOAP_LITERAL, ret TSRMLS_CC); if (dummy && dummy->children && dummy->children->content) { if (list.len != 0) { smart_str_appendc(&list, ' '); @@ -3179,7 +3157,7 @@ static xmlNodePtr to_xml_list(encodeTypePtr enc, zval next++; } ZVAL_STRING(&dummy_zval, start, 0); - dummy = master_to_xml(list_enc, &dummy_zval, SOAP_LITERAL, ret); + dummy = master_to_xml(list_enc, &dummy_zval, SOAP_LITERAL, ret TSRMLS_CC); if (dummy && dummy->children && dummy->children->content) { if (list.len != 0) { smart_str_appendc(&list, ' '); @@ -3202,26 +3180,25 @@ static xmlNodePtr to_xml_list(encodeTypePtr enc, zval return ret; } -static xmlNodePtr to_xml_list1(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent) { +static xmlNodePtr to_xml_list1(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { /*FIXME: minLength=1 */ - return to_xml_list(enc,data,style, parent); + return to_xml_list(enc,data,style, parent TSRMLS_CC); } -static zval* to_zval_union(encodeTypePtr enc, xmlNodePtr data) { +static zval* to_zval_union(encodeTypePtr enc, xmlNodePtr data TSRMLS_DC) { /*FIXME*/ - return to_zval_list(enc, data); + return to_zval_list(enc, data TSRMLS_CC); } -static xmlNodePtr to_xml_union(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent) { +static xmlNodePtr to_xml_union(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { /*FIXME*/ - return to_xml_list(enc,data,style, parent); + return to_xml_list(enc,data,style, parent TSRMLS_CC); } -static zval *to_zval_any(encodeTypePtr type, xmlNodePtr data) +static zval *to_zval_any(encodeTypePtr type, xmlNodePtr data TSRMLS_DC) { xmlBufferPtr buf; zval *ret; - TSRMLS_FETCH(); if (SOAP_GLOBAL(sdl) && SOAP_GLOBAL(sdl)->elements && data->name) { smart_str nscat = {0}; @@ -3237,7 +3214,7 @@ static zval *to_zval_any(encodeTypePtr type, xmlNodePt if (zend_hash_find(SOAP_GLOBAL(sdl)->elements, nscat.c, nscat.len+1, (void **)&sdl_type) == SUCCESS && (*sdl_type)->encode) { smart_str_free(&nscat); - return master_to_zval_int((*sdl_type)->encode, data); + return master_to_zval_int((*sdl_type)->encode, data TSRMLS_CC); } smart_str_free(&nscat); } @@ -3250,7 +3227,7 @@ static zval *to_zval_any(encodeTypePtr type, xmlNodePt return ret; } -static xmlNodePtr to_xml_any(encodeTypePtr type, zval *data, int style, xmlNodePtr parent) +static xmlNodePtr to_xml_any(encodeTypePtr type, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { xmlNodePtr ret = NULL; @@ -3265,7 +3242,7 @@ static xmlNodePtr to_xml_any(encodeTypePtr type, zval for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(data), &pos); zend_hash_get_current_data_ex(Z_ARRVAL_P(data), (void **) &el, &pos) == SUCCESS; zend_hash_move_forward_ex(Z_ARRVAL_P(data), &pos)) { - ret = master_to_xml(enc, *el, style, parent); + ret = master_to_xml(enc, *el, style, parent TSRMLS_CC); if (ret && ret->name != xmlStringTextNoenc && zend_hash_get_current_key_ex(Z_ARRVAL_P(data), &name, &name_len, &idx, 0, &pos) == HASH_KEY_IS_STRING) { @@ -3300,13 +3277,13 @@ static xmlNodePtr to_xml_any(encodeTypePtr type, zval return ret; } -zval *sdl_guess_convert_zval(encodeTypePtr enc, xmlNodePtr data) +zval *sdl_guess_convert_zval(encodeTypePtr enc, xmlNodePtr data TSRMLS_DC) { sdlTypePtr type; type = enc->sdl_type; if (type == NULL) { - return guess_zval_convert(enc, data); + return guess_zval_convert(enc, data TSRMLS_CC); } /*FIXME: restriction support if (type && type->restrictions && @@ -3340,31 +3317,31 @@ zval *sdl_guess_convert_zval(encodeTypePtr enc, xmlNod switch (type->kind) { case XSD_TYPEKIND_SIMPLE: if (type->encode && enc != &type->encode->details) { - return master_to_zval_int(type->encode, data); + return master_to_zval_int(type->encode, data TSRMLS_CC); } else { - return guess_zval_convert(enc, data); + return guess_zval_convert(enc, data TSRMLS_CC); } break; case XSD_TYPEKIND_LIST: - return to_zval_list(enc, data); + return to_zval_list(enc, data TSRMLS_CC); case XSD_TYPEKIND_UNION: - return to_zval_union(enc, data); + return to_zval_union(enc, data TSRMLS_CC); case XSD_TYPEKIND_COMPLEX: case XSD_TYPEKIND_RESTRICTION: case XSD_TYPEKIND_EXTENSION: if (type->encode && (type->encode->details.type == IS_ARRAY || type->encode->details.type == SOAP_ENC_ARRAY)) { - return to_zval_array(enc, data); + return to_zval_array(enc, data TSRMLS_CC); } - return to_zval_object(enc, data); + return to_zval_object(enc, data TSRMLS_CC); default: soap_error0(E_ERROR, "Encoding: Internal Error"); - return guess_zval_convert(enc, data); + return guess_zval_convert(enc, data TSRMLS_CC); } } -xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent) +xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zval *data, int style, xmlNodePtr parent TSRMLS_DC) { sdlTypePtr type; xmlNodePtr ret = NULL; @@ -3372,7 +3349,7 @@ xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zv type = enc->sdl_type; if (type == NULL) { - ret = guess_xml_convert(enc, data, style, parent); + ret = guess_xml_convert(enc, data, style, parent TSRMLS_CC); if (style == SOAP_ENCODED) { set_ns_and_type(ret, enc); } @@ -3404,16 +3381,16 @@ xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zv switch(type->kind) { case XSD_TYPEKIND_SIMPLE: if (type->encode && enc != &type->encode->details) { - ret = master_to_xml(type->encode, data, style, parent); + ret = master_to_xml(type->encode, data, style, parent TSRMLS_CC); } else { - ret = guess_xml_convert(enc, data, style, parent); + ret = guess_xml_convert(enc, data, style, parent TSRMLS_CC); } break; case XSD_TYPEKIND_LIST: - ret = to_xml_list(enc, data, style, parent); + ret = to_xml_list(enc, data, style, parent TSRMLS_CC); break; case XSD_TYPEKIND_UNION: - ret = to_xml_union(enc, data, style, parent); + ret = to_xml_union(enc, data, style, parent TSRMLS_CC); break; case XSD_TYPEKIND_COMPLEX: case XSD_TYPEKIND_RESTRICTION: @@ -3421,9 +3398,9 @@ xmlNodePtr sdl_guess_convert_xml(encodeTypePtr enc, zv if (type->encode && (type->encode->details.type == IS_ARRAY || type->encode->details.type == SOAP_ENC_ARRAY)) { - return to_xml_array(enc, data, style, parent); + return to_xml_array(enc, data, style, parent TSRMLS_CC); } else { - return to_xml_object(enc, data, style, parent); + return to_xml_object(enc, data, style, parent TSRMLS_CC); } break; default: @@ -3547,7 +3524,7 @@ xmlNsPtr encode_add_ns(xmlNodePtr node, const char* ns } if (xmlns == NULL) { xmlChar* prefix; - TSRMLS_FETCH(); + TSRMLS_FETCH(); if (zend_hash_find(&SOAP_GLOBAL(defEncNs), (char*)ns, strlen(ns) + 1, (void **)&prefix) == SUCCESS) { xmlns = xmlNewNs(node->doc->children, BAD_CAST(ns), prefix); @@ -3725,7 +3702,7 @@ static encodePtr get_array_type(xmlNodePtr node, zval smart_str array_type = {0}; if (cur_ns) { - xmlNsPtr ns = encode_add_ns(node,cur_ns); + xmlNsPtr ns = encode_add_ns(node, cur_ns); smart_str_appends(type, (char*)ns->prefix); smart_str_appendc(type, ':'); @@ -3761,7 +3738,7 @@ static void get_type_str(xmlNodePtr node, const char* strcmp(ns,SOAP_1_2_ENC_NAMESPACE) == 0) { ns = SOAP_1_1_ENC_NAMESPACE; } - xmlns = encode_add_ns(node,ns); + xmlns = encode_add_ns(node, ns); smart_str_appends(ret, (char*)xmlns->prefix); smart_str_appendc(ret, ':'); }