Patch: another Boolean fix, java.net cleanups

Bryce McKinlay bryce@albatross.co.nz
Thu Dec 16 21:08:00 GMT 1999


I'm committing the following patch, which is another small fix for
java.lang.Boolean and some simple fixes/cleanups/efficiency improvements for the
Plain*SocketImpl classes.

regards

  [ bryce ]

1999-12-16  Bryce McKinlay  <bryce@albatross.co.nz>

        * java/lang/Boolean.java (Boolean(String)): Set `value' to false on a
        null String constructor parameter.
        * java/net/natPlainSocketImpl.cc: Remove unneccessary sprintf calls
        for exception messages.
        BooleanClass: declare.
        (setOption): Use BooleanClass instead of Class.forName() for
        instanceof test.
        (bind): Cast 4th parameter of setsockopt to `char *' for
        compatibility with older Solaris headers.
        * java/net/natPlainDatagramSocketImpl.cc: Remove unneccessary
        sprintf calls for exception messages.
        BooleanClass, IntegerClass: declare.
        (setOption): Use BooleanClass and IntegerClass, not Class.forName()
        for instanceof test.

Index: java/lang/Boolean.java
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/lang/Boolean.java,v
retrieving revision 1.2
diff -u -r1.2 Boolean.java
--- Boolean.java 1999/12/02 19:59:30 1.2
+++ Boolean.java 1999/12/17 04:53:53
@@ -39,7 +39,7 @@

   public Boolean(String strVal)
   {
-    value = strVal.equalsIgnoreCase("true");
+    value = (strVal == null ? false : strVal.equalsIgnoreCase("true"));
   }

   public boolean booleanValue()
Index: java/net/natPlainSocketImpl.cc
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/net/natPlainSocketImpl.cc,v
retrieving revision 1.14
diff -u -r1.14 natPlainSocketImpl.cc
--- natPlainSocketImpl.cc 1999/11/23 11:40:26 1.14
+++ natPlainSocketImpl.cc 1999/12/17 04:53:54
@@ -18,7 +18,6 @@
 #include <netinet/in.h>
 #include <netinet/tcp.h>
 #include <errno.h>
-#include <stdio.h>
 #include <string.h>
 #endif /* DISABLE_JAVA_NET */

@@ -43,6 +42,9 @@
 #include <java/lang/Class.h>
 #include <java/lang/Integer.h>

+#define BooleanClass _CL_Q34java4lang7Boolean
+extern java::lang::Class BooleanClass;
+
 #ifdef DISABLE_JAVA_NET

 void
@@ -107,10 +109,8 @@
   int sock = ::socket (AF_INET, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
   if (sock < 0)
     {
-      char msg[100];
       char* strerr = strerror (errno);
-      sprintf (msg, "SocketImpl.create: %.*s", 80, strerr);
-      JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+      JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
     }
   fnum = sock;
   fd = new java::io::FileDescriptor (sock);
@@ -149,7 +149,7 @@
     goto error;

   // Enable SO_REUSEADDR, so that servers can reuse ports left in TIME_WAIT.
-  ::setsockopt(fnum, SOL_SOCKET, SO_REUSEADDR, &i, sizeof(i));
+  ::setsockopt(fnum, SOL_SOCKET, SO_REUSEADDR, (char *) &i, sizeof(i));

   if (::bind (fnum, ptr, len) == 0)
     {
@@ -164,10 +164,8 @@
       return;
     }
  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::net::BindException (JvNewStringUTF (msg)));
+  JvThrow (new java::net::BindException (JvNewStringUTF (strerr)));
 }

 void
@@ -209,10 +207,8 @@
       goto error;
   return;
  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::net::ConnectException (JvNewStringUTF (msg)));
+  JvThrow (new java::net::ConnectException (JvNewStringUTF (strerr)));
 }

 void
@@ -220,10 +216,8 @@
 {
   if (::listen (fnum, backlog) != 0)
     {
-      char msg[80];
       char* strerr = strerror (errno);
-      sprintf (msg, "%.*s", 80, strerr);
-      JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+      JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
     }
 }

@@ -279,10 +273,8 @@
   s->fd = new java::io::FileDescriptor (new_socket);
   return;
  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+  JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
 }

 void
@@ -291,8 +283,7 @@
   int val;
   socklen_t val_len = sizeof (val);

-  if ( _Jv_IsInstanceOf(value,
-    java::lang::Class::forName(JvNewStringUTF("java.lang.Boolean"))))
+  if (_Jv_IsInstanceOf (value, &BooleanClass))
     {
       java::lang::Boolean *boolobj =
         static_cast<java::lang::Boolean *> (value);
@@ -370,10 +361,8 @@
     }

  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::net::SocketException (JvNewStringUTF (msg)));
+  JvThrow (new java::net::SocketException (JvNewStringUTF (strerr)));
 }

 java::lang::Object *
@@ -470,10 +459,8 @@
     }

  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::net::SocketException (JvNewStringUTF (msg)));
+  JvThrow (new java::net::SocketException (JvNewStringUTF (strerr)));
 }

 #endif /* DISABLE_JAVA_NET */
Index: java/net/natPlainDatagramSocketImpl.cc
===================================================================
RCS file: /cvs/java/libgcj/libjava/java/net/natPlainDatagramSocketImpl.cc,v
retrieving revision 1.14
diff -u -r1.14 natPlainDatagramSocketImpl.cc
--- natPlainDatagramSocketImpl.cc 1999/11/23 11:40:26 1.14
+++ natPlainDatagramSocketImpl.cc 1999/12/17 04:53:55
@@ -25,7 +25,6 @@
 #include <arpa/inet.h>
 #endif
 #include <errno.h>
-#include <stdio.h>
 #include <string.h>

 #if HAVE_BSTRING_H
@@ -47,6 +46,11 @@
 #include <java/lang/Boolean.h>
 #include <java/lang/Integer.h>

+#define BooleanClass _CL_Q34java4lang7Boolean
+extern java::lang::Class BooleanClass;
+#define IntegerClass _CL_Q34java4lang7Integer
+extern java::lang::Class IntegerClass;
+
 #ifdef DISABLE_JAVA_NET

 void
@@ -152,10 +156,8 @@
   int sock = ::socket (AF_INET, SOCK_DGRAM, 0);
   if (sock < 0)
     {
-      char msg[80];
       char* strerr = strerror (errno);
-      sprintf (msg, "%.*s", 80, strerr);
-      JvThrow (new java::net::SocketException (JvNewStringUTF (msg)));
+      JvThrow (new java::net::SocketException (JvNewStringUTF (strerr)));
     }
   fnum = sock;
   fd = new java::io::FileDescriptor (sock);
@@ -206,10 +208,8 @@
       return;
     }
  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::net::BindException (JvNewStringUTF (msg)));
+  JvThrow (new java::net::BindException (JvNewStringUTF (strerr)));
 }

 jint
@@ -246,10 +246,8 @@
   i->address = raddr;
   return rport;
  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+  JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
 }

 void
@@ -284,10 +282,8 @@
   if (::sendto (fnum, (char *) dbytes, p->getLength(), 0, ptr, len) >= 0)
     return;
  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+  JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
 }

 void
@@ -344,10 +340,8 @@
   p->setLength ((jint) retlen);
   return;
  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+  JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
 }

 void
@@ -359,10 +353,8 @@
   if (::setsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, val_len) == 0)
     return;

-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+  JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
 }

 jint
@@ -374,10 +366,8 @@
   if (::getsockopt (fnum, IPPROTO_IP, IP_MULTICAST_TTL, &val, &val_len) == 0)
     return ((int) val) & 0xFF;

-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+  JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
 }

 void
@@ -423,10 +413,8 @@
   if (::setsockopt (fnum, level, opname, ptr, len) == 0)
     return;
  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::io::IOException (JvNewStringUTF (msg)));
+  JvThrow (new java::io::IOException (JvNewStringUTF (strerr)));
 }

 void
@@ -436,15 +424,13 @@
   int val;
   socklen_t val_len = sizeof (val);

-  if ( _Jv_IsInstanceOf(value,
-    java::lang::Class::forName(JvNewStringUTF("java.lang.Boolean"))))
+  if (_Jv_IsInstanceOf (value, &BooleanClass))
     {
       java::lang::Boolean *boolobj =
         static_cast<java::lang::Boolean *> (value);
       val = boolobj->booleanValue() ? 1 : 0;
     }
-  else if ( _Jv_IsInstanceOf(value,
-      java::lang::Class::forName(JvNewStringUTF("java.lang.Integer"))))
+  else if (_Jv_IsInstanceOf (value, &IntegerClass))
     {
       java::lang::Integer *intobj =
         static_cast<java::lang::Integer *> (value);
@@ -530,10 +516,8 @@
     }

  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::net::SocketException (JvNewStringUTF (msg)));
+  JvThrow (new java::net::SocketException (JvNewStringUTF (strerr)));
 }

 java::lang::Object *
@@ -632,10 +616,8 @@
     }

  error:
-  char msg[80];
   char* strerr = strerror (errno);
-  sprintf (msg, "%.*s", 80, strerr);
-  JvThrow (new java::net::SocketException (JvNewStringUTF (msg)));
+  JvThrow (new java::net::SocketException (JvNewStringUTF (strerr)));
 }

 #endif /* DISABLE_JAVA_NET */




More information about the Java-patches mailing list