You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by jk...@apache.org on 2015/07/29 16:42:11 UTC
tapestry-5 git commit: TAP5-2476: improve performance of
org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(String,
StringBuilder)
Repository: tapestry-5
Updated Branches:
refs/heads/master f5ed86bd1 -> f13311782
TAP5-2476: improve performance of org.apache.tapestry5.dom.AbstractMarkupModel.encodeQuoted(String, StringBuilder)
Project: http://git-wip-us.apache.org/repos/asf/tapestry-5/repo
Commit: http://git-wip-us.apache.org/repos/asf/tapestry-5/commit/f1331178
Tree: http://git-wip-us.apache.org/repos/asf/tapestry-5/tree/f1331178
Diff: http://git-wip-us.apache.org/repos/asf/tapestry-5/diff/f1331178
Branch: refs/heads/master
Commit: f13311782acc8b8a3da311623761cb970d04387e
Parents: f5ed86b
Author: Jochen Kemnade <jo...@eddyson.de>
Authored: Wed Jul 29 16:41:27 2015 +0200
Committer: Jochen Kemnade <jo...@eddyson.de>
Committed: Wed Jul 29 16:41:27 2015 +0200
----------------------------------------------------------------------
.../tapestry5/dom/AbstractMarkupModel.java | 46 +++++++++++++-------
1 file changed, 30 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tapestry-5/blob/f1331178/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java
----------------------------------------------------------------------
diff --git a/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java b/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java
index ce6831d..63879c2 100644
--- a/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java
+++ b/tapestry-core/src/main/java/org/apache/tapestry5/dom/AbstractMarkupModel.java
@@ -92,9 +92,9 @@ public abstract class AbstractMarkupModel implements MarkupModel
public void encodeQuoted(String content, StringBuilder builder)
{
assert content != null;
- int length = content.length();
-
- for (int i = 0; i < length; i++)
+ int length = content.length(), tokenStart = 0, i = 0;
+ String delimiter;
+ for (; i < length; i++)
{
char ch = content.charAt(i);
@@ -102,28 +102,27 @@ public abstract class AbstractMarkupModel implements MarkupModel
{
case '<':
- builder.append("<");
- continue;
+ delimiter = "<";
+ break;
case '>':
- builder.append(">");
- continue;
+ delimiter = ">";
+ break;
case '&':
- builder.append("&");
- continue;
+ delimiter = "&";
+ break;
case '"':
if (!useApostropheForAttributes)
{
- builder.append(""");
- continue;
+ delimiter = """;
+ break;
}
- builder.append(ch);
continue;
case '\'':
@@ -131,17 +130,32 @@ public abstract class AbstractMarkupModel implements MarkupModel
if (useApostropheForAttributes)
{
//TAP5-714
- builder.append("'");
- continue;
+ delimiter = "'";
+ break;
}
- // Fall through
+ continue;
+
default:
- builder.append(ch);
+ continue;
+ }
+
+ if (tokenStart != i)
+ {
+ builder.append(content.subSequence(tokenStart, i));
}
+
+ builder.append(delimiter);
+
+ tokenStart = i + 1;
+ }
+
+ if (tokenStart != length)
+ {
+ builder.append(content.subSequence(tokenStart, length));
}
}
}