2004-11-24 Michael Koch <konqueror@gmx.de>
authorMichael Koch <konqueror@gmx.de>
Wed, 24 Nov 2004 12:19:42 +0000 (12:19 +0000)
committerMichael Koch <mkoch@gcc.gnu.org>
Wed, 24 Nov 2004 12:19:42 +0000 (12:19 +0000)
* 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.

From-SVN: r91150

libjava/ChangeLog
libjava/Makefile.am
libjava/Makefile.in
libjava/java/nio/DirectByteBufferImpl.java
libjava/jni.cc

index b4fe15df019fe1b26648417eed1b39489f1e8f64..df476ec0d1a10c839a7cadccd059bf2e738e700e 100644 (file)
@@ -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
index 65d60dedcfa59a8ff41cefd9daa95b7aedd61328..204425b59f5b189352b537f36df4e45bfba35f20 100644 (file)
@@ -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.
+
 
 ## ################################################################
 
index c701c123619b01f21f2b17c5e1afe9f5c383b7df..fbb42ae13f7846d813acf76c4824e0e841c6273f 100644 (file)
@@ -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'
index ab8cd6f79737edc6b16a4c3b52f3b3c54ee8a4d8..d73f090cdb7ffbe31c9de0dff037146568734b31 100644 (file)
@@ -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)
index 6d8fd9db3219493165348b2b2b026b4421e14f8b..6bfc4812d96eabbdea0a72a8150a34a4776c47c9 100644 (file)
@@ -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