FileDescriptor.java: Initialize in/out/err in init().
authorAdam Megacz <adam@xwt.org>
Wed, 6 Mar 2002 22:37:26 +0000 (22:37 +0000)
committerAdam Megacz <megacz@gcc.gnu.org>
Wed, 6 Mar 2002 22:37:26 +0000 (22:37 +0000)
2002-03-06  Adam Megacz  <adam@xwt.org>

        * java/io/FileDescriptor.java: Initialize in/out/err in init().
        * java/io/natFileDescriptorWin32.cc (init()): Added function.
        * java/io/natFileDescriptorPosix.cc (init()): Added function.
        * java/io/natFileDescriptorEcos.cc (init()): Added function.

From-SVN: r50378

libjava/ChangeLog
libjava/java/io/FileDescriptor.java
libjava/java/io/natFileDescriptorEcos.cc
libjava/java/io/natFileDescriptorPosix.cc
libjava/java/io/natFileDescriptorWin32.cc

index 1712779adbe62c01e558f263bae3dce2cc9f1142..90af4e67117d52b36226ebdec5c35014300f878f 100644 (file)
@@ -1,3 +1,10 @@
+2002-03-06  Adam Megacz  <adam@xwt.org>
+
+        * java/io/FileDescriptor.java: Initialize in/out/err in init().
+        * java/io/natFileDescriptorWin32.cc (init()): Added function.
+        * java/io/natFileDescriptorPosix.cc (init()): Added function.
+        * java/io/natFileDescriptorEcos.cc (init()): Added function.
+
 2002-03-06  Eric Blake  <ebb9@email.byu.edu>
 
        * scripts/unicode-decomp.pl: Move from chartables.pl, and remove
index a8bf7512c66d25b2e4d22afdb06f22836cbdc260..427a26a6e3a96e2899031b987e7251dfdea5274a 100644 (file)
@@ -24,14 +24,20 @@ package java.io;
 // if need be.
 public final class FileDescriptor
 {
-  public static final FileDescriptor in = new FileDescriptor (0);
-  public static final FileDescriptor out = new FileDescriptor (1);
-  public static final FileDescriptor err = new FileDescriptor (2);
+
+  public static final FileDescriptor in = null;
+  public static final FileDescriptor out = null;
+  public static final FileDescriptor err = null;
+
+  private static native void init();
+  static
+  {
+    init();
+  }
 
   public native void sync () throws SyncFailedException;
   public native boolean valid ();
 
-
   // These are mode values for open().
   static final int READ   = 1;
   static final int WRITE  = 2;
index a66bf739d3563546cafa9936f702d60de865dcfb..81e10e2e559df06d29582840b68c05cb30e0373c 100644 (file)
@@ -41,6 +41,14 @@ diag_write (char *data, int len)
 
 #define NO_FSYNC_MESSAGE "sync unsupported"
 
+void
+java::io::FileDescriptor::init(void)
+{
+  in = new java::io::FileDescriptor((jint)(GetStdHandle (0)));
+  out = new java::io::FileDescriptor((jint)(GetStdHandle (1)));
+  err = new java::io::FileDescriptor((jint)(GetStdHandle (2)));
+}
+
 jboolean
 java::io::FileDescriptor::valid (void)
 {
index 7c55f562d66f8c4d7fce9b16a6819180381fcda7..83a1261de0d771570e421cac9a74b82579a3d735 100644 (file)
@@ -45,6 +45,14 @@ details.  */
 
 #define NO_FSYNC_MESSAGE "sync unsupported"
 
+void
+java::io::FileDescriptor::init(void)
+{
+  in = new java::io::FileDescriptor((jint)(GetStdHandle (0)));
+  out = new java::io::FileDescriptor((jint)(GetStdHandle (1)));
+  err = new java::io::FileDescriptor((jint)(GetStdHandle (2)));
+}
+
 jboolean
 java::io::FileDescriptor::valid (void)
 {
index 7c2bbb1b504a89bf544ae59954653d9bfd16d9ff..4a9d690bf2c196ec69d3c99f6cff47c20cb15ae1 100644 (file)
@@ -32,6 +32,17 @@ details.  */
 #include <java/lang/Thread.h>
 #include <java/io/FileNotFoundException.h>
 
+// FIXME: casting a FILE (pointer) to a jint will not work on Win64 --
+//        we should be using gnu.gcj.RawData's.
+
+void
+java::io::FileDescriptor::init(void)
+{
+  in = new java::io::FileDescriptor((jint)(GetStdHandle (STD_INPUT_HANDLE)));
+  out = new java::io::FileDescriptor((jint)(GetStdHandle (STD_OUTPUT_HANDLE)));
+  err = new java::io::FileDescriptor((jint)(GetStdHandle (STD_ERROR_HANDLE)));
+}
+
 static char *
 winerr (void)
 {