diff options
Diffstat (limited to 'libjava/gnu/java/nio/SocketChannelImpl.java')
-rw-r--r-- | libjava/gnu/java/nio/SocketChannelImpl.java | 23 |
1 files changed, 11 insertions, 12 deletions
diff --git a/libjava/gnu/java/nio/SocketChannelImpl.java b/libjava/gnu/java/nio/SocketChannelImpl.java index 65ca623..48cf585 100644 --- a/libjava/gnu/java/nio/SocketChannelImpl.java +++ b/libjava/gnu/java/nio/SocketChannelImpl.java @@ -194,20 +194,19 @@ public class SocketChannelImpl extends SocketChannel int bytes = 0; int len = src.position(); - if (src instanceof ByteBufferImpl) - { - ByteBufferImpl bi = (ByteBufferImpl) src; - byte[]b = bi.array(); - bytes = SocketWrite(fd, b, 0, len); - } + if (src.hasArray ()) + { + byte[] b = src.array (); + bytes = SocketWrite (fd, b, 0, len); + } else - { - byte[]b = new byte[len]; - src.get(b, 0, len); - bytes = SocketWrite(fd, b, 0, len); - } + { + byte[] b = new byte [len]; + src.get (b, 0, len); + bytes = SocketWrite (fd, b, 0, len); + } - return bytes; + return bytes; } public long write (ByteBuffer[] srcs, int offset, int length) |