From: Tom Tromey Date: Fri, 18 Jan 2002 17:23:23 +0000 (+0000) Subject: natPlainSocketImpl.cc: Include IllegalArgumentException.h. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=80d1ee91f931a34113d7dff2154798f31fa6d74b;p=platform%2Fupstream%2Fgcc.git natPlainSocketImpl.cc: Include IllegalArgumentException.h. * java/net/natPlainSocketImpl.cc: Include IllegalArgumentException.h. (_Jv_recv): New template function. (BooleanClass): Removed. (read): Use _Jv_recv. (setOption): Use Boolean::class$. Throw exception if object is not Boolean or Integer. From-SVN: r48992 --- diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 4dece51..459d3cd 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -1,3 +1,13 @@ +2002-01-18 Tom Tromey + + * java/net/natPlainSocketImpl.cc: Include + IllegalArgumentException.h. + (_Jv_recv): New template function. + (BooleanClass): Removed. + (read): Use _Jv_recv. + (setOption): Use Boolean::class$. Throw exception if object is + not Boolean or Integer. + 2002-01-17 Tom Tromey * java/awt/MenuComponent.java: Merged with Classpath. diff --git a/libjava/java/net/natPlainSocketImpl.cc b/libjava/java/net/natPlainSocketImpl.cc index cc8dca1..ca294d2 100644 --- a/libjava/java/net/natPlainSocketImpl.cc +++ b/libjava/java/net/natPlainSocketImpl.cc @@ -1,4 +1,4 @@ -/* Copyright (C) 1998, 1999, 2000 , 2002 Free Software Foundation +/* Copyright (C) 1998, 1999, 2000, 2002 Free Software Foundation This file is part of libgcj. @@ -70,6 +70,15 @@ _Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) #undef accept #endif +// A wrapper for recv so we don't have to do configure tests. +template +static inline int +_Jv_recv (int (*recv_func) (T_fd s, T_buf buf, T_len len, T_flags flags), + int s, void *buf, size_t len, int flags) +{ + return recv_func ((T_fd) s, (T_buf) buf, (T_len) len, (T_flags) flags); +} + #include #include #include @@ -88,8 +97,7 @@ _Jv_accept (int fd, struct sockaddr *addr, socklen_t *addrlen) #include #include #include - -#define BooleanClass java::lang::Boolean::class$ +#include #ifdef DISABLE_JAVA_NET @@ -497,7 +505,7 @@ java::net::PlainSocketImpl::read(jbyteArray buffer, jint offset, jint count) } } // Read the socket. - int r = ::recv (fnum, bytes, count, 0); + int r = _Jv_recv (::recv, fnum, (void *) bytes, count, 0); if (r == 0) return -1; if (java::lang::Thread::interrupted()) @@ -584,7 +592,7 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value) int val; socklen_t val_len = sizeof (val); - if (_Jv_IsInstanceOf (value, &BooleanClass)) + if (_Jv_IsInstanceOf (value, &java::lang::Boolean::class$)) { java::lang::Boolean *boolobj = static_cast (value); @@ -598,12 +606,16 @@ java::net::PlainSocketImpl::setOption (jint optID, java::lang::Object *value) val = 0; } } - else // assume value is an Integer + else if (_Jv_IsInstanceOf (value, &java::lang::Integer::class$)) { java::lang::Integer *intobj = static_cast (value); val = (int) intobj->intValue(); } + else + { + throw new java::lang::IllegalArgumentException (JvNewStringLatin1 ("`value' must be Boolean or Integer")); + } switch (optID) {