[freenet-cvs] r13140 - trunk/freenet/src/freenet/support

toad at freenetproject.org toad at freenetproject.org
Thu May 3 22:17:55 UTC 2007


Author: toad
Date: 2007-05-03 22:17:55 +0000 (Thu, 03 May 2007)
New Revision: 13140

Modified:
   trunk/freenet/src/freenet/support/HTMLEncoder.java
   trunk/freenet/src/freenet/support/HTMLNode.java
Log:
Hopefully a significant optimisation to page generation

Modified: trunk/freenet/src/freenet/support/HTMLEncoder.java
===================================================================
--- trunk/freenet/src/freenet/support/HTMLEncoder.java	2007-05-03 22:16:01 UTC (rev 13139)
+++ trunk/freenet/src/freenet/support/HTMLEncoder.java	2007-05-03 22:17:55 UTC (rev 13140)
@@ -18,6 +18,15 @@
 	public static String encode(String s) {
 		int n = s.length();
 		StringBuffer sb = new StringBuffer(n);
+		encodeToBuffer(n, s, sb);
+		return sb.toString();
+	}
+
+	public static void encodeToBuffer(String s, StringBuffer sb) {
+		encodeToBuffer(s.length(), s, sb);
+	}
+	
+	private static void encodeToBuffer(int n, String s, StringBuffer sb) {
 		for (int i = 0; i < n; i++) {
 			char c = s.charAt(i);
 			if(Character.isLetterOrDigit(c)){ //only special characters need checking
@@ -30,7 +39,7 @@
 				sb.append(c);
 		}
 		}
-		return sb.toString();
+		
 	}
 	
 	static {

Modified: trunk/freenet/src/freenet/support/HTMLNode.java
===================================================================
--- trunk/freenet/src/freenet/support/HTMLNode.java	2007-05-03 22:16:01 UTC (rev 13139)
+++ trunk/freenet/src/freenet/support/HTMLNode.java	2007-05-03 22:17:55 UTC (rev 13140)
@@ -136,7 +136,7 @@
 
 	public StringBuffer generate(StringBuffer tagBuffer) {
 		if (name.equals("#")) {
-			tagBuffer.append(HTMLEncoder.encode(content));
+			HTMLEncoder.encodeToBuffer(content, tagBuffer);
 			return tagBuffer;
 		}
 		// Perhaps this should be something else, but since I don't know if '#' was not just arbitrary chosen, I'll just pick '%'
@@ -151,7 +151,11 @@
 			Map.Entry attributeEntry = (Map.Entry) attributeIterator.next();
 			String attributeName = (String) attributeEntry.getKey();
 			String attributeValue = (String) attributeEntry.getValue();
-			tagBuffer.append(' ').append(HTMLEncoder.encode(attributeName)).append("=\"").append(HTMLEncoder.encode(attributeValue)).append('"');
+			tagBuffer.append(' ');
+			HTMLEncoder.encodeToBuffer(attributeName, tagBuffer);
+			tagBuffer.append("=\"");
+			HTMLEncoder.encodeToBuffer(attributeValue, tagBuffer);
+			tagBuffer.append('"');;
 		}
 		if (children.size() == 0) {
 			if (name.equals("textarea") || name.equals("div") || name.equals("a")) {




More information about the cvs mailing list