fix limit in replace for BufferedInputStream
[fanfix.git] / src / be / nikiroo / utils / streams / ReplaceInputStream.java
index 1cc5139beae1e012053f62dece957076add4dfee..ae576e25e7a4833e9ce8f4bea25616ff018eca52 100644 (file)
@@ -114,7 +114,8 @@ public class ReplaceInputStream extends BufferedInputStream {
                }
 
                // We need at least maxFromSize so we can iterate and replace
-               source = new byte[Math.max(2 * maxFromSize, MIN_BUFFER_SIZE)];
+               source = new byte[Math.max(2 * Math.max(maxToSize, maxFromSize),
+                               MIN_BUFFER_SIZE)];
                spos = 0;
                slen = 0;
        }
@@ -141,11 +142,11 @@ public class ReplaceInputStream extends BufferedInputStream {
                                if (froms[i] != null && froms[i].length > 0
                                                && StreamUtils.startsWith(froms[i], source, spos, slen)) {
                                        if (tos[i] != null && tos[i].length > 0) {
-                                               System.arraycopy(tos[i], 0, buffer, off + spos,
+                                               System.arraycopy(tos[i], 0, buffer, off + count,
                                                                tos[i].length);
                                                count += tos[i].length;
                                        }
-
+                                       
                                        spos += froms[i].length;
                                        replaced = true;
                                        break;