Hi,

I noticed that TagUtils.filter does quite a lot of unnecessary work in the common case (assuming the common case is when no character translations are required). In such a case one can of course simply return the original string.

I have written a version of TagUtils.filter that is optimised for the common case. It is roughly 2-3 times faster and doesn't create so many objects. Obviously this method isn't a huge bottleneck or anything but even so it may be worth including in the source tree: no sense throwing away cpu cycles :-)

Anyways, the new method is appended to this message. Apologies for not including a diff, I don't have easy access to CVS at the moment. The change is pretty simple and localised.

cheers,
Peter McKenzie


public String filter(String value) {

       if (value == null) {
           return (null);
       }

       char content[] = value.toCharArray();
       StringBuffer result = null;

int i = 0;
scanLoop: for (; i < content.length; i++) {
switch (content[i]) {
case '<':
case '>':
case '&':
case '"':
case '\'':
result = new StringBuffer(content.length + 50);
result.append(content, 0, i);
break scanLoop;
default:
}
}
if (result == null) {
// No special characters found so just return the original string.
return value;
}


       for (; i < content.length; i++) {
           switch (content[i]) {
               case '<':
                   result.append("&lt;");
                   break;
               case '>':
                   result.append("&gt;");
                   break;
               case '&':
                   result.append("&amp;");
                   break;
               case '"':
                   result.append("&quot;");
                   break;
               case '\'':
                   result.append("&#39;");
                   break;
               default:
                   result.append(content[i]);
           }
       }
       return result.toString();
   }

_________________________________________________________________
Need more speed? Get Xtra JetStream  @ http://xtra.co.nz/jetstream


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to