--- parser3/src/classes/xdoc.C 2003/03/25 10:35:00 1.108.2.19.2.14 +++ parser3/src/classes/xdoc.C 2003/03/25 11:11:35 1.108.2.19.2.15 @@ -8,7 +8,7 @@ #include "classes.h" #ifdef XML -static const char* IDENT_XDOC_C="$Date: 2003/03/25 10:35:00 $"; +static const char* IDENT_XDOC_C="$Date: 2003/03/25 11:11:35 $"; #include "pa_vmethod_frame.h" @@ -674,6 +674,7 @@ static void _string(Request& r, MethodPa #ifndef DOXYGEN struct Add_xslt_param_info { Request* r; + Array* strings; const char** current_transform_param; }; #endif @@ -681,8 +682,9 @@ static void add_xslt_param( HashStringValue::key_type attribute, HashStringValue::value_type meaning, Add_xslt_param_info* info) { - *info->current_transform_param++=info->r->transcode(attribute)->str; - *info->current_transform_param++=info->r->transcode(meaning->as_string())->str; + GdomeDOMString_auto_ptr s; + *info->current_transform_param++=(s=info->r->transcode(attribute))->str; *info->strings+=s; + *info->current_transform_param++=(s=info->r->transcode(meaning->as_string()))->str; *info->strings+=s; } static VXdoc& _transform(Request& r, const String* stylesheet_source, VXdoc& vdoc, xsltStylesheetPtr stylesheet, const char** transform_params) { @@ -758,6 +760,7 @@ static void _transform(Request& r, Metho transform_params=new(UseGC) const char*[params->count()*2+1]; Add_xslt_param_info info={ &r, + &transform_strings, transform_params }; params->for_each(add_xslt_param, &info);