On Tue, Jul 11, 2006 at 08:04:12AM -0500, David Sowder (Zothar) wrote: > Matthew Toseland wrote: > >Can't we just clear() it? What does lint4j have against > >StringBuffer.setLength() exactly? > > > Because I didn't see nor do I see a clear() method in the docs for > StringBuffer nor did lint4j suggest it and I'm still a relative newb to > the Java API? > lint4j says it's a performance issue. See "Using > StringBuffer.setLength()" at http://www.jutils.com/checks/performance.html
Woah, that is one of the best examples of rank stupidity in the java API
I have ever seen.
> >On Sun, Jul 09, 2006 at 11:21:58PM +0000, zothar at freenetproject.org wrote:
> >
> >>Author: zothar
> >>Date: 2006-07-09 23:21:53 +0000 (Sun, 09 Jul 2006)
> >>New Revision: 9533
> >>
> >>Modified:
> >> trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java
> >> trunk/freenet/src/freenet/support/FileLoggerHook.java
> >> trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
> >>Log:
> >>Make lint4j happier with StringBuffers by avoiding setLength()
> >>
> >>Modified: trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java
> >>===================================================================
> >>--- trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java
> >>2006-07-09 22:47:52 UTC (rev 9532)
> >>+++ trunk/freenet/src/freenet/clients/http/filter/HTMLFilter.java
> >>2006-07-09 23:21:53 UTC (rev 9533)
> >>@@ -166,8 +166,8 @@
> >>
> >> saveText(b,
> >> currentTag,
> >> w, this);
> >>
> >>- b.setLength(0);
> >>- balt.setLength(0);
> >>+ b = new
> >>StringBuffer(100);
> >>+ balt = new
> >>StringBuffer(4000);
> >> mode = INTAG;
> >> } else {
> >> b.append(c);
> >>@@ -178,21 +178,21 @@
> >> if
> >>
> >> (HTMLDecoder.isWhitespace(c)) {
> >>
> >> splitTag.add(b.toString());
> >> mode =
> >> INTAGWHITESPACE;
> >>- b.setLength(0);
> >>+ b = new
> >>StringBuffer(100);
> >> } else if ((c ==
> >> '<') &&
> >>
> >> Character.isWhitespace(balt.charAt(0))) {
> >> // Previous
> >> was an
> >> un-escaped <
> >> in a script.
> >> saveText(b,
> >> currentTag,
> >> w, this);
> >>
> >>- balt.setLength(0);
> >>- b.setLength(0);
> >>+ balt = new
> >>StringBuffer(4000);
> >>+ b = new
> >>StringBuffer(100);
> >>
> >> splitTag.clear();
> >> } else if (c == '>')
> >> {
> >>
> >> splitTag.add(b.toString());
> >>- b.setLength(0);
> >>+ b = new
> >>StringBuffer(100);
> >>
> >> processTag(splitTag, w, this);
> >> currentTag =
> >>
> >> (String)splitTag.get(0);
> >>
> >> splitTag.clear();
> >>- balt.setLength(0);
> >>+ balt = new
> >>StringBuffer(4000);
> >> mode =
> >> INTEXT;
> >> } else if (
> >> (b.length()
> >> == 2)
> >>@@ -228,9 +228,9 @@
> >>
> >> w.write(
> >>
> >> "<!-- Tags in string attribute -->");
> >>
> >> splitTag.clear();
> >>-
> >>b.setLength(0);
> >>+ b =
> >>new StringBuffer(100);
> >>
> >> mode = INTEXT;
> >>-
> >>balt.setLength(0);
> >>+
> >>balt = new StringBuffer(4000);
> >>
> >> // End tag now
> >> }
> >> else
> >> {
> >>
> >> killTag = true;
> >>@@ -257,8 +257,8 @@
> >>
> >> w.write(
> >>
> >> "<!-- Tags in string attribute -->");
> >>
> >> splitTag.clear();
> >>-
> >>b.setLength(0);
> >>-
> >>balt.setLength(0);
> >>+ b =
> >>new StringBuffer(100);
> >>+
> >>balt = new StringBuffer(4000);
> >>
> >> mode = INTEXT;
> >>
> >> // End tag now
> >> }
> >> else
> >> {
> >>@@ -303,7 +303,7 @@
> >> case INTAGCOMMENTCLOSING :
> >> if (c == '>') {
> >> saveComment(b,
> >> w, this);
> >>- b.setLength(0);
> >>+ b = new
> >>StringBuffer(100);
> >> mode =
> >> INTEXT;
> >> }
> >> break;
> >>@@ -321,14 +321,14 @@
> >> killTag =
> >> false;
> >> currentTag =
> >>
> >> (String)splitTag.get(0);
> >>
> >> splitTag.clear();
> >>- b.setLength(0);
> >>- balt.setLength(0);
> >>+ b = new
> >>StringBuffer(100);
> >>+ balt = new
> >>StringBuffer(4000);
> >> mode =
> >> INTEXT;
> >> } else if ((c ==
> >> '<') &&
> >>
> >> Character.isWhitespace(balt.charAt(0))) {
> >> // Previous
> >> was an
> >> un-escaped <
> >> in a script.
> >> saveText(balt,
> >> currentTag, w, this);
> >>- balt.setLength(0);
> >>- b.setLength(0);
> >>+ balt = new
> >>StringBuffer(4000);
> >>+ b = new
> >>StringBuffer(100);
> >>
> >> splitTag.clear();
> >> mode = INTAG;
> >> } else if
> >>
> >> (HTMLDecoder.isWhitespace(c)) {
> >>
> >>Modified: trunk/freenet/src/freenet/support/FileLoggerHook.java
> >>===================================================================
> >>--- trunk/freenet/src/freenet/support/FileLoggerHook.java 2006-07-09
> >>22:47:52 UTC (rev 9532)
> >>+++ trunk/freenet/src/freenet/support/FileLoggerHook.java 2006-07-09
> >>23:21:53 UTC (rev 9533)
> >>@@ -716,7 +716,7 @@
> >> if (sb.length() > 0) {
> >> strVec.addElement(sb.toString());
> >> fmtVec.addElement(new Integer(0));
> >>- sb.setLength(0);
> >>+ sb = new StringBuffer();
> >> }
> >> fmtVec.addElement(new
> >> Integer(numberOf(f[i])));
> >> } else if (f[i] == '\\') {
> >>@@ -729,7 +729,7 @@
> >> if (sb.length() > 0) {
> >> strVec.addElement(sb.toString());
> >> fmtVec.addElement(new Integer(0));
> >>- sb.setLength(0);
> >>+ sb = new StringBuffer();
> >> }
> >>
> >> this.fmt = new int[fmtVec.size()];
> >>
> >>Modified: trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
> >>===================================================================
> >>--- trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
> >>2006-07-09 22:47:52 UTC (rev 9532)
> >>+++ trunk/freenet/src/freenet/support/UpdatableSortedLinkedList.java
> >>2006-07-09 23:21:53 UTC (rev 9533)
> >>@@ -54,13 +54,10 @@
> >> throw new IllegalStateException("impossible");
> >> }
> >>
> >>- private StringBuffer sb = new StringBuffer(1000);
> >>-
> >> protected synchronized void checkList() {
> >> // FIXME once satisfied that this works, make it only happen
> >> occasionally
> >> int statedLength = list.size();
> >> int realLength = 0;
> >>- sb.setLength(0);
> >> for(Enumeration e = list.elements();e.hasMoreElements();) {
> >> UpdatableSortedLinkedListItem i =
> >> (UpdatableSortedLinkedListItem) e.nextElement();
> >> // Sanity check for infinite looping
> >>
> >>_______________________________________________
> >>cvs mailing list
> >>cvs at freenetproject.org
> >>http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
> >>
> >>
> >
> >
> >------------------------------------------------------------------------
> >
> >_______________________________________________
> >cvs mailing list
> >cvs at freenetproject.org
> >http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs
>
> _______________________________________________
> Devl mailing list
> Devl at freenetproject.org
> http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
>
--
Matthew J Toseland - toad at amphibian.dyndns.org
Freenet Project Official Codemonkey - http://freenetproject.org/
ICTHUS - Nothing is impossible. Our Boss says so.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL:
<https://emu.freenetproject.org/pipermail/devl/attachments/20060711/4ab433dd/attachment.pgp>
