[prev in list] [next in list] [prev in thread] [next in thread] 

List:       jakarta-commons-dev
Subject:    svn commit: r905082 -
From:       niallp () apache ! org
Date:       2010-01-31 17:56:08
Message-ID: 20100131175608.9DF8E23889ED () eris ! apache ! org
[Download RAW message or body]

Author: niallp
Date: Sun Jan 31 17:56:08 2010
New Revision: 905082

URL: http://svn.apache.org/viewvc?rev=905082&view=rev
Log:
Port LANG-574 to 2.x branch - Performance improvement: check for isArray to \
short-circuit the 9 instanceof checks. Improves both non-arrays and Object[] in tests

Modified:
    commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/HashCodeBuilder.java


Modified: commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/HashCodeBuilder.java
                
URL: http://svn.apache.org/viewvc/commons/proper/lang/branches/LANG_2_X/src/main/java/ \
org/apache/commons/lang/builder/HashCodeBuilder.java?rev=905082&r1=905081&r2=905082&view=diff
 ==============================================================================
--- commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/HashCodeBuilder.java \
                (original)
+++ commons/proper/lang/branches/LANG_2_X/src/main/java/org/apache/commons/lang/builder/HashCodeBuilder.java \
Sun Jan 31 17:56:08 2010 @@ -860,6 +860,7 @@
             iTotal = iTotal * iConstant;
 
         } else {
+            if(object.getClass().isArray()) {
                 // 'Switch' on type of array, to dispatch to the correct handler
                 // This handles multi dimensional arrays
                 if (object instanceof long[]) {
@@ -878,12 +879,13 @@
                     append((float[]) object);
                 } else if (object instanceof boolean[]) {
                     append((boolean[]) object);
-                } else if (object instanceof Object[]) {
+                } else {
                     // Not an array of primitives
                     append((Object[]) object);
-                } else {
-                    iTotal = iTotal * iConstant + object.hashCode();
                 }
+            } else {
+                iTotal = iTotal * iConstant + object.hashCode();
+            }
         }
         return this;
     }


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic