aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog11
-rw-r--r--libjava/Makefile.am7
-rw-r--r--libjava/Makefile.in5
-rw-r--r--libjava/java/nio/DirectByteBufferImpl.java12
-rw-r--r--libjava/jni.cc5
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