From dead842895c143db58ce3ff23af1b3921c3ebfe7 Mon Sep 17 00:00:00 2001 From: mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> Date: Fri, 23 Apr 2004 06:56:34 +0000 Subject: [PATCH] 2004-04-23 Michael Koch <konqueror@gmx.de> * gnu/java/nio/channels/FileChannelImpl.java (SET, CUR): Unused, removed. (read): Implement here directly. (implRead): Removed. (write): Implement here directly. (implWrite): Removed. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@81079 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/ChangeLog | 9 +++ .../java/nio/channels/FileChannelImpl.java | 65 +++++++------------ 2 files changed, 34 insertions(+), 40 deletions(-) diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 68fd9dc9e778..6222b5726faf 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,12 @@ +2004-04-23 Michael Koch <konqueror@gmx.de> + + * gnu/java/nio/channels/FileChannelImpl.java + (SET, CUR): Unused, removed. + (read): Implement here directly. + (implRead): Removed. + (write): Implement here directly. + (implWrite): Removed. + 2004-04-23 Dalibor Topic <robilad@kaffe.org> * javax/rmi/CORBA/PortableRemoteObjectDelegate.java, diff --git a/libjava/gnu/java/nio/channels/FileChannelImpl.java b/libjava/gnu/java/nio/channels/FileChannelImpl.java index 4bddf268daf3..ea6ef0e43bf8 100644 --- a/libjava/gnu/java/nio/channels/FileChannelImpl.java +++ b/libjava/gnu/java/nio/channels/FileChannelImpl.java @@ -60,13 +60,8 @@ import java.nio.channels.WritableByteChannel; * Instances of this class are created by invoking getChannel * Upon a Input/Output/RandomAccessFile object. */ - public final class FileChannelImpl extends FileChannel { - // These are WHENCE values for seek. - static final int SET = 0; - static final int CUR = 1; - // These are mode values for open(). public static final int READ = 1; public static final int WRITE = 2; @@ -139,7 +134,15 @@ public final class FileChannelImpl extends FileChannel public int read (ByteBuffer dst) throws IOException { - return implRead (dst); + int result; + byte[] buffer = new byte [dst.remaining ()]; + + result = read (buffer, 0, buffer.length); + + if (result > 0) + dst.put (buffer, 0, result); + + return result; } public int read (ByteBuffer dst, long position) @@ -149,25 +152,12 @@ public final class FileChannelImpl extends FileChannel throw new IllegalArgumentException (); long oldPosition = implPosition (); position (position); - int result = implRead (dst); + int result = read(dst); position (oldPosition); return result; } - private int implRead (ByteBuffer dst) throws IOException - { - int result; - byte[] buffer = new byte [dst.remaining ()]; - - result = read (buffer, 0, buffer.length); - - if (result > 0) - dst.put (buffer, 0, result); - - return result; - } - public native int read () throws IOException; @@ -189,7 +179,20 @@ public final class FileChannelImpl extends FileChannel public int write (ByteBuffer src) throws IOException { - return implWrite (src); + int len = src.remaining (); + if (src.hasArray()) + { + byte[] buffer = src.array(); + write(buffer, src.arrayOffset() + src.position(), len); + } + else + { + // Use a more efficient native method! FIXME! + byte[] buffer = new byte [len]; + src.get (buffer, 0, len); + write (buffer, 0, len); + } + return len; } public int write (ByteBuffer src, long position) @@ -209,30 +212,12 @@ public final class FileChannelImpl extends FileChannel oldPosition = implPosition (); seek (position); - result = implWrite (src); + result = write(src); seek (oldPosition); return result; } - private int implWrite (ByteBuffer src) throws IOException - { - int len = src.remaining (); - if (src.hasArray()) - { - byte[] buffer = src.array(); - write(buffer, src.arrayOffset() + src.position(), len); - } - else - { - // Use a more efficient native method! FIXME! - byte[] buffer = new byte [len]; - src.get (buffer, 0, len); - write (buffer, 0, len); - } - return len; - } - public native void write (byte[] buffer, int offset, int length) throws IOException; -- GitLab