diff options
author | Adam Megacz <adam@xwt.org> | 2002-03-06 22:37:26 +0000 |
---|---|---|
committer | Adam Megacz <megacz@gcc.gnu.org> | 2002-03-06 22:37:26 +0000 |
commit | 348c9efcd3341f49e593a51983a594a7fb764386 (patch) | |
tree | 3ac43b0cddbf1aba8587e5920168b476f8b74f37 /libjava/java/io | |
parent | 037cfe71e00569f3b623da0a672fbbad2dd6c22f (diff) | |
download | gcc-348c9efcd3341f49e593a51983a594a7fb764386.zip gcc-348c9efcd3341f49e593a51983a594a7fb764386.tar.gz gcc-348c9efcd3341f49e593a51983a594a7fb764386.tar.bz2 |
FileDescriptor.java: Initialize in/out/err in init().
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
Diffstat (limited to 'libjava/java/io')
-rw-r--r-- | libjava/java/io/FileDescriptor.java | 14 | ||||
-rw-r--r-- | libjava/java/io/natFileDescriptorEcos.cc | 8 | ||||
-rw-r--r-- | libjava/java/io/natFileDescriptorPosix.cc | 8 | ||||
-rw-r--r-- | libjava/java/io/natFileDescriptorWin32.cc | 11 |
4 files changed, 37 insertions, 4 deletions
diff --git a/libjava/java/io/FileDescriptor.java b/libjava/java/io/FileDescriptor.java index a8bf751..427a26a 100644 --- a/libjava/java/io/FileDescriptor.java +++ b/libjava/java/io/FileDescriptor.java @@ -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; diff --git a/libjava/java/io/natFileDescriptorEcos.cc b/libjava/java/io/natFileDescriptorEcos.cc index a66bf73..81e10e2 100644 --- a/libjava/java/io/natFileDescriptorEcos.cc +++ b/libjava/java/io/natFileDescriptorEcos.cc @@ -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) { diff --git a/libjava/java/io/natFileDescriptorPosix.cc b/libjava/java/io/natFileDescriptorPosix.cc index 7c55f56..83a1261 100644 --- a/libjava/java/io/natFileDescriptorPosix.cc +++ b/libjava/java/io/natFileDescriptorPosix.cc @@ -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) { diff --git a/libjava/java/io/natFileDescriptorWin32.cc b/libjava/java/io/natFileDescriptorWin32.cc index 7c2bbb1..4a9d690 100644 --- a/libjava/java/io/natFileDescriptorWin32.cc +++ b/libjava/java/io/natFileDescriptorWin32.cc @@ -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) { |