+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
// 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;
#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)
{
#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)
{
#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)
{