projects
/
mono.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
2004-03-01 Atsushi Enomoto <atsushi@ximian.com>
[mono.git]
/
mcs
/
class
/
System.XML
/
Mono.Xml.Xsl.Operations
/
XslAvt.cs
diff --git
a/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslAvt.cs
b/mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslAvt.cs
index 1a367bf2b05ff2eeb550cf09c6fb1de7f7caee3f..fae05b100cf59d291671afd873f495df4d614b7a 100644
(file)
--- a/
mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslAvt.cs
+++ b/
mcs/class/System.XML/Mono.Xml.Xsl.Operations/XslAvt.cs
@@
-97,6
+97,7
@@
namespace Mono.Xml.Xsl.Operations {
public static string AttemptPreCalc (ref XslAvt avt)
{
public static string AttemptPreCalc (ref XslAvt avt)
{
+ if (avt == null) return null;
if (avt.simpleString != null) {
string s = avt.simpleString;
avt = null;
if (avt.simpleString != null) {
string s = avt.simpleString;
avt = null;
@@
-108,13
+109,16
@@
namespace Mono.Xml.Xsl.Operations {
public string Evaluate (XslTransformProcessor p)
{
if (simpleString != null) return simpleString;
public string Evaluate (XslTransformProcessor p)
{
if (simpleString != null) return simpleString;
+ if (avtParts.Count == 1)
+ return ((AvtPart) avtParts [0]).Evaluate (p);
- StringBuilder sb =
new
StringBuilder ();
+ StringBuilder sb =
p.GetAvt
StringBuilder ();
- foreach (AvtPart part in avtParts)
- sb.Append (part.Evaluate (p));
-
- return sb.ToString ();
+ int len = avtParts.Count;
+ for (int i = 0; i < len; i++)
+ sb.Append (((AvtPart) avtParts [i]).Evaluate (p));
+
+ return p.ReleaseAvtStringBuilder ();
}
// Represents part of an AVT
}
// Represents part of an AVT