[pmd-devel] pmd/rulesets/releases 36.xml,1.4,1.5
A source code analyzer
Brought to you by:
adangel,
juansotuyo
From: Allan <all...@us...> - 2006-02-25 02:17:16
|
Update of /cvsroot/pmd/pmd/rulesets/releases In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6644/rulesets/releases Modified Files: 36.xml Log Message: New Rule: InsufficientStringbufferDeclaration See: http://sourceforge.net/forum/forum.php?thread_id=1438119&forum_id=188194 Rule finds StringBuffers which may be incorrectly pre-sized. It takes a worst case scenario from any if/switch blocks, and adds the lengths of all string/primative literals that are appended into the StringBuffer. It compares this against the length the constructor was given, if any. Default for a StringBuffer is 16 characters, and a buffer allocated with a String gets that String's length+16 characters. If the constructor is created in a way that the length can not be calculated, the buffer is skipped, assuming the developer knew what they were doing. The savings here is needless re-sizing. If the string buffer is improperly sized, when your appends pass the current length, if forces new memory to be allocated in order to resize the buffer. Index: 36.xml =================================================================== RCS file: /cvsroot/pmd/pmd/rulesets/releases/36.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** 36.xml 25 Feb 2006 01:04:11 -0000 1.4 --- 36.xml 25 Feb 2006 02:17:10 -0000 1.5 *************** *** 9,12 **** --- 9,13 ---- <rule ref="rulesets/strings.xml/InefficientEmptyStringCheck"/> <rule ref="rulesets/design.xml/UnsynchronizedStaticDateFormatter"/> + <rule ref="rulesets/strings.xml/InsufficientStringBufferDeclaration"/> </ruleset> |