You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2011/02/10 00:10:29 UTC

svn commit: r1069165 - /cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java

Author: jbellis
Date: Wed Feb  9 23:10:29 2011
New Revision: 1069165

URL: http://svn.apache.org/viewvc?rev=1069165&view=rev
Log:
BBU.lastIndexOf should iterate down to position(), not 0
patch by jbellis

Modified:
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java?rev=1069165&r1=1069164&r2=1069165&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/utils/ByteBufferUtil.java Wed Feb  9 23:10:29 2011
@@ -153,22 +153,19 @@ public class ByteBufferUtil
     }
 
     /**
-     * ByteBuffer adoption of org.apache.commons.lang.ArrayUtils.lastIndexOf method
+     * ByteBuffer adaptation of org.apache.commons.lang.ArrayUtils.lastIndexOf method
      *
      * @param buffer the array to traverse for looking for the object, may be <code>null</code>
      * @param valueToFind the value to find
      * @param startIndex the start index to travers backwards from
-     * @return the last index of the value within the array,
-     * <code>-1</code> if not found or <code>null</code> array input
+     * @return the last index of the value within the array, relative to buffer's arrayOffset
+     * [that is, between buffer.position() and buffer.limit()]; <code>-1</code> if not found.
      */
     public static int lastIndexOf(ByteBuffer buffer, byte valueToFind, int startIndex)
     {
-        if (buffer == null)
-        {
-            return -1;
-        }
+        assert buffer != null;
 
-        if (startIndex < 0)
+        if (startIndex < buffer.position())
         {
             return -1;
         }
@@ -177,12 +174,10 @@ public class ByteBufferUtil
             startIndex = buffer.limit() - 1;
         }
 
-        for (int i = startIndex; i >= 0; i--)
+        for (int i = startIndex; i >= buffer.position(); i--)
         {
             if (valueToFind == buffer.get(i))
-            {
                 return i;
-            }
         }
 
         return -1;