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