aboutsummaryrefslogtreecommitdiff
path: root/libjava/gnu/java/nio/SocketChannelImpl.java
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/gnu/java/nio/SocketChannelImpl.java')
-rw-r--r--libjava/gnu/java/nio/SocketChannelImpl.java23
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)