Author: markt
Date: Tue Jan 16 14:39:28 2018
New Revision: 1821251

URL: http://svn.apache.org/viewvc?rev=1821251&view=rev
Log:
Align indexOf(String, int, int, int) implementations and pull up.
Use ByteChunnks implementation as it is shorter.

Modified:
    tomcat/trunk/java/org/apache/tomcat/util/buf/AbstractChunk.java
    tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java
    tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java

Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/AbstractChunk.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/AbstractChunk.java?rev=1821251&r1=1821250&r2=1821251&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/AbstractChunk.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/AbstractChunk.java Tue Jan 16 
14:39:28 2018
@@ -84,6 +84,29 @@ public abstract class AbstractChunk impl
     }
 
 
+    public int indexOf(String src, int srcOff, int srcLen, int myOff) {
+        char first = src.charAt(srcOff);
+
+        // Look for first char
+        int srcEnd = srcOff + srcLen;
+
+        mainLoop: for (int i = myOff + start; i <= (end - srcLen); i++) {
+            if (getBufferElement(i) != first) {
+                continue;
+            }
+            // found first char, now look for a match
+            int myPos = i + 1;
+            for (int srcPos = srcOff + 1; srcPos < srcEnd;) {
+                if (getBufferElement(myPos++) != src.charAt(srcPos++)) {
+                    continue mainLoop;
+                }
+            }
+            return i - start; // found it
+        }
+        return -1;
+    }
+
+
     /**
      * Resets the chunk to an uninitialized state.
      */

Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java?rev=1821251&r1=1821250&r2=1821251&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/ByteChunk.java Tue Jan 16 
14:39:28 2018
@@ -731,29 +731,6 @@ public final class ByteChunk extends Abs
     }
 
 
-    public int indexOf(String src, int srcOff, int srcLen, int myOff) {
-        char first = src.charAt(srcOff);
-
-        // Look for first char
-        int srcEnd = srcOff + srcLen;
-
-        mainLoop: for (int i = myOff + start; i <= (end - srcLen); i++) {
-            if (buff[i] != first) {
-                continue;
-            }
-            // found first char, now look for a match
-            int myPos = i + 1;
-            for (int srcPos = srcOff + 1; srcPos < srcEnd;) {
-                if (buff[myPos++] != src.charAt(srcPos++)) {
-                    continue mainLoop;
-                }
-            }
-            return i - start; // found it
-        }
-        return -1;
-    }
-
-
     @Override
     protected int getBufferElement(int index) {
         return buff[index];

Modified: tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java?rev=1821251&r1=1821250&r2=1821251&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/buf/CharChunk.java Tue Jan 16 
14:39:28 2018
@@ -605,35 +605,6 @@ public final class CharChunk extends Abs
     }
 
 
-    public int indexOf(String src, int srcOff, int srcLen, int myOff) {
-        char first = src.charAt(srcOff);
-
-        // Look for first char
-        int srcEnd = srcOff + srcLen;
-
-        for (int i = myOff + start; i <= (end - srcLen); i++) {
-            if (buff[i] != first) {
-                continue;
-            }
-            // Special case - search string is a single character
-            if (srcLen == 1) {
-                return i - start;
-            }
-            // Found first char, now look for a match
-            int myPos = i + 1;
-            for (int srcPos = srcOff + 1; srcPos < srcEnd;) {
-                if (buff[myPos++] != src.charAt(srcPos++)) {
-                    break;
-                }
-                if (srcPos == srcEnd) {
-                    return i - start; // found it
-                }
-            }
-        }
-        return -1;
-    }
-
-
     @Override
     protected int getBufferElement(int index) {
         return buff[index];



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to