From 3f21dcd0eb97b3b7c4847c913b0955e391192245 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cyril=20Bont=C3=A9?= Date: Sat, 9 Oct 2010 20:46:50 +0200 Subject: [PATCH] Fixed a performance issue with utf8 characters. When an utf8 char was detected in a string, jedis flushed its output buffer for each char. Now, the buffer is only flushed when it is really full. --- src/main/java/redis/clients/util/RedisOutputStream.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/redis/clients/util/RedisOutputStream.java b/src/main/java/redis/clients/util/RedisOutputStream.java index d9233e9..c366e02 100644 --- a/src/main/java/redis/clients/util/RedisOutputStream.java +++ b/src/main/java/redis/clients/util/RedisOutputStream.java @@ -119,13 +119,13 @@ public final class RedisOutputStream extends FilterOutputStream { flushBuffer(); } } else if (c < 0x800) { - if(2 < buf.length - count) { + if(2 >= buf.length - count) { flushBuffer(); } buf[count++] = (byte)(0xc0 | (c >> 6)); buf[count++] = (byte)(0x80 | (c & 0x3f)); } else if (isSurrogate(c)) { - if(4 < buf.length - count) { + if(4 >= buf.length - count) { flushBuffer(); } int uc = Character.toCodePoint(c, str.charAt(i++)); @@ -134,7 +134,7 @@ public final class RedisOutputStream extends FilterOutputStream { buf[count++] = ((byte)(0x80 | ((uc >> 6) & 0x3f))); buf[count++] = ((byte)(0x80 | (uc & 0x3f))); } else { - if(3 < buf.length - count) { + if(3 >= buf.length - count) { flushBuffer(); } buf[count++] =((byte)(0xe0 | ((c >> 12))));