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