diff options
Diffstat (limited to 'libjava')
-rw-r--r-- | libjava/ChangeLog | 11 | ||||
-rw-r--r-- | libjava/Makefile.am | 7 | ||||
-rw-r--r-- | libjava/Makefile.in | 5 | ||||
-rw-r--r-- | libjava/java/nio/DirectByteBufferImpl.java | 12 | ||||
-rw-r--r-- | libjava/jni.cc | 5 |
5 files changed, 38 insertions, 2 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index b4fe15d..df476ec0 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,14 @@ +2004-11-24 Michael Koch <konqueror@gmx.de> + + * java/nio/DirectByteBufferImpl.java + (ReadWrite.ReadWrite): New constructor. + (DirectByteBufferImpl): Likewise. + * jni.cc (_Jv_JNI_NewDirectByteBuffer): + Use DirectByteBufferImpl.ReadWrite. + * Makefile.am: + Generate java/nio/DirectByteBufferImpl$ReadWrite.h. + * Makefile.in: Rgenerated. + 2004-11-24 Jeroen Frijters <address@bogus.example.com> * java/nio/DirectByteBufferImpl.java diff --git a/libjava/Makefile.am b/libjava/Makefile.am index 65d60de..204425b 100644 --- a/libjava/Makefile.am +++ b/libjava/Makefile.am @@ -621,6 +621,7 @@ ordinary_nat_headers = $(ordinary_java_source_files:.java=.h) \ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ java/io/ObjectInputStream$$GetField.h \ + java/nio/DirectByteBufferImpl$$ReadWrite.h \ java/nio/channels/Pipe$$SinkChannel.h \ java/nio/channels/Pipe$$SourceChannel.h \ java/lang/reflect/Proxy$$ProxyData.h \ @@ -736,6 +737,10 @@ java/io/ObjectOutputStream$$PutField.h: java/io/ObjectOutputStream.class $(GCJH) -classpath '' -bootclasspath $(top_builddir) \ 'java/io/ObjectOutputStream$$PutField' +java/nio/DirectByteBufferImpl$$ReadWrite.h: java/nio/DirectByteBufferImpl.class + $(GCJH) -classpath '' -bootclasspath $(top_builddir) \ + 'java/nio/DirectByteBufferImpl$$ReadWrite' + java/nio/channels/Pipe$$SinkChannel.h: java/nio/channels/Pipe.class $(GCJH) -classpath '' -bootclasspath $(top_builddir) \ 'java/nio/channels/Pipe$$SinkChannel' @@ -806,6 +811,8 @@ install-data-local: $(INSTALL_DATA) 'gnu/java/net/PlainSocketImpl$$SocketOutputStream.h' $(DESTDIR)$(includedir)/gnu/java/net/ $(INSTALL_DATA) 'gnu/java/nio/PipeImpl$$SinkChannelImpl.h' $(DESTDIR)$(includedir)/gnu/java/nio/ $(INSTALL_DATA) 'gnu/java/nio/PipeImpl$$SourceChannelImpl.h' $(DESTDIR)$(includedir)/gnu/java/nio/ +## Don't install java/nio/DirectByteBufferImpl$$ReadWrite.h here. It's for internal use only. + ## ################################################################ diff --git a/libjava/Makefile.in b/libjava/Makefile.in index c701c12..fbb42ae 100644 --- a/libjava/Makefile.in +++ b/libjava/Makefile.in @@ -4818,6 +4818,7 @@ ordinary_nat_headers = $(ordinary_java_source_files:.java=.h) \ inner_nat_headers = java/io/ObjectOutputStream$$PutField.h \ java/io/ObjectInputStream$$GetField.h \ + java/nio/DirectByteBufferImpl$$ReadWrite.h \ java/nio/channels/Pipe$$SinkChannel.h \ java/nio/channels/Pipe$$SourceChannel.h \ java/lang/reflect/Proxy$$ProxyData.h \ @@ -23907,6 +23908,10 @@ java/io/ObjectOutputStream$$PutField.h: java/io/ObjectOutputStream.class $(GCJH) -classpath '' -bootclasspath $(top_builddir) \ 'java/io/ObjectOutputStream$$PutField' +java/nio/DirectByteBufferImpl$$ReadWrite.h: java/nio/DirectByteBufferImpl.class + $(GCJH) -classpath '' -bootclasspath $(top_builddir) \ + 'java/nio/DirectByteBufferImpl$$ReadWrite' + java/nio/channels/Pipe$$SinkChannel.h: java/nio/channels/Pipe.class $(GCJH) -classpath '' -bootclasspath $(top_builddir) \ 'java/nio/channels/Pipe$$SinkChannel' diff --git a/libjava/java/nio/DirectByteBufferImpl.java b/libjava/java/nio/DirectByteBufferImpl.java index ab8cd6f..d73f090 100644 --- a/libjava/java/nio/DirectByteBufferImpl.java +++ b/libjava/java/nio/DirectByteBufferImpl.java @@ -89,6 +89,11 @@ abstract class DirectByteBufferImpl extends ByteBuffer super(capacity); } + ReadWrite(RawData address, int capacity) + { + super(address, capacity); + } + ReadWrite(Object owner, RawData address, int capacity, int limit, int position) @@ -109,6 +114,13 @@ abstract class DirectByteBufferImpl extends ByteBuffer this.address = VMDirectByteBuffer.allocate(capacity); } + DirectByteBufferImpl(RawData address, int capacity) + { + super(capacity, capacity, 0, -1); + this.owner = this; + this.address = address; + } + DirectByteBufferImpl(Object owner, RawData address, int capacity, int limit, int position) diff --git a/libjava/jni.cc b/libjava/jni.cc index 6d8fd9d..6bfc481 100644 --- a/libjava/jni.cc +++ b/libjava/jni.cc @@ -42,6 +42,7 @@ details. */ #include <java/lang/Thread.h> #include <java/lang/IllegalAccessError.h> #include <java/nio/DirectByteBufferImpl.h> +#include <java/nio/DirectByteBufferImpl$ReadWrite.h> #include <java/util/IdentityHashMap.h> #include <gnu/gcj/RawData.h> @@ -1723,8 +1724,8 @@ _Jv_JNI_NewDirectByteBuffer (JNIEnv *, void *address, jlong length) { using namespace gnu::gcj; using namespace java::nio; - return new DirectByteBufferImpl (reinterpret_cast<RawData *> (address), - length); + return new DirectByteBufferImpl$ReadWrite + (reinterpret_cast<RawData *> (address), length); } static void * JNICALL |