You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by to...@apache.org on 2007/07/31 06:29:49 UTC

svn commit: r561231 - /harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Stack.java

Author: tonywu
Date: Mon Jul 30 21:29:47 2007
New Revision: 561231

URL: http://svn.apache.org/viewvc?view=rev&rev=561231
Log:
optimize for performance, avoid method call and access to instence variable

Modified:
    harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Stack.java

Modified: harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Stack.java
URL: http://svn.apache.org/viewvc/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Stack.java?view=diff&rev=561231&r1=561230&r2=561231
==============================================================================
--- harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Stack.java (original)
+++ harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/util/Stack.java Mon Jul 30 21:29:47 2007
@@ -104,10 +104,22 @@
 	 * @param o
 	 *            the object to be searched
 	 */
-	public synchronized int search(Object o) {
-		int index = lastIndexOf(o);
-		if (index >= 0)
-			return (elementCount - index);
-		return -1;
+	public synchronized int search(Object object) {
+        final Object[] dumpArray = elementData;
+        final int size = elementCount;
+        if (object != null) {
+            for (int i = size - 1; i >= 0; i--) {
+                if (object.equals(dumpArray[i])) {
+                    return size - i;
+                }
+            }
+        } else {
+            for (int i = size - 1; i >= 0; i--) {
+                if (dumpArray[i] == null) {
+                    return size - i;
+                }
+            }
+        }
+        return -1;
 	}
 }