Patch: FYI: file descriptor cleanup
Tom Tromey
tromey@redhat.com
Wed Mar 6 15:41:00 GMT 2002
I'm checking this in.
This fixes an oops from Adam's last patch.
It also makes the POSIX FileDescriptor.valid method a bit better. We
avoid a syscall when we know it isn't necessary.
Adam, are you planning to put your patch on the branch as well?
Tom
Index: ChangeLog
from Tom Tromey <tromey@redhat.com>
* java/io/natFileDescriptorEcos.cc (init): Don't use
GetStdHandle.
* java/io/natFileDescriptorPosix.cc (valid): Don't call stat if FD
is negative.
(init): Don't use GetStdHandle.
Index: java/io/natFileDescriptorEcos.cc
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/io/natFileDescriptorEcos.cc,v
retrieving revision 1.7
diff -u -r1.7 natFileDescriptorEcos.cc
--- java/io/natFileDescriptorEcos.cc 2002/03/06 22:37:26 1.7
+++ java/io/natFileDescriptorEcos.cc 2002/03/06 23:11:46
@@ -1,6 +1,6 @@
// natFileDescriptor.cc - Native part of FileDescriptor class.
-/* Copyright (C) 1998, 1999, 2001 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2001, 2002 Free Software Foundation
This file is part of libgcj.
@@ -44,9 +44,9 @@
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)));
+ in = new java::io::FileDescriptor(0);
+ out = new java::io::FileDescriptor(1);
+ err = new java::io::FileDescriptor(2);
}
jboolean
Index: java/io/natFileDescriptorPosix.cc
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/io/natFileDescriptorPosix.cc,v
retrieving revision 1.17
diff -u -r1.17 natFileDescriptorPosix.cc
--- java/io/natFileDescriptorPosix.cc 2002/03/06 22:37:26 1.17
+++ java/io/natFileDescriptorPosix.cc 2002/03/06 23:11:46
@@ -1,6 +1,6 @@
// natFileDescriptor.cc - Native part of FileDescriptor class.
-/* Copyright (C) 1998, 1999, 2000, 2001 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation
This file is part of libgcj.
@@ -46,18 +46,18 @@
#define NO_FSYNC_MESSAGE "sync unsupported"
void
-java::io::FileDescriptor::init(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)));
+ in = new java::io::FileDescriptor(0);
+ out = new java::io::FileDescriptor(1);
+ err = new java::io::FileDescriptor(2);
}
jboolean
java::io::FileDescriptor::valid (void)
{
struct stat sb;
- return ::fstat (fd, &sb) == 0;
+ return fd >= 0 && ::fstat (fd, &sb) == 0;
}
void
More information about the Java-patches
mailing list