summaryrefslogtreecommitdiffstats
path: root/libjava/java/io
diff options
context:
space:
mode:
authormegacz <megacz@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-06 22:37:26 +0000
committermegacz <megacz@138bc75d-0d04-0410-961f-82ee72b054a4>2002-03-06 22:37:26 +0000
commit72a7a1414b3a1f0e122107ef59a4692f9dfdf67a (patch)
tree3ac43b0cddbf1aba8587e5920168b476f8b74f37 /libjava/java/io
parent51b8ae00a7717dc02a24f45a99c5bda8c2d07e83 (diff)
downloadppe42-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.java14
-rw-r--r--libjava/java/io/natFileDescriptorEcos.cc8
-rw-r--r--libjava/java/io/natFileDescriptorPosix.cc8
-rw-r--r--libjava/java/io/natFileDescriptorWin32.cc11
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)
{
OpenPOWER on IntegriCloud