diff options
| author | megacz <megacz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-06 22:37:26 +0000 |
|---|---|---|
| committer | megacz <megacz@138bc75d-0d04-0410-961f-82ee72b054a4> | 2002-03-06 22:37:26 +0000 |
| commit | 72a7a1414b3a1f0e122107ef59a4692f9dfdf67a (patch) | |
| tree | 3ac43b0cddbf1aba8587e5920168b476f8b74f37 /libjava/java/io | |
| parent | 51b8ae00a7717dc02a24f45a99c5bda8c2d07e83 (diff) | |
| download | ppe42-gcc-72a7a1414b3a1f0e122107ef59a4692f9dfdf67a.tar.gz ppe42-gcc-72a7a1414b3a1f0e122107ef59a4692f9dfdf67a.zip | |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@50378 138bc75d-0d04-0410-961f-82ee72b054a4
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 a8bf7512c66..427a26a6e3a 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 a66bf739d35..81e10e2e559 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 7c55f562d66..83a1261de0d 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 7c2bbb1b504..4a9d690bf2c 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) { |

