From 6cbaf0385b0bc1ccb27362a569ad668460c2ed2d Mon Sep 17 00:00:00 2001 From: Michael Koch Date: Thu, 25 Sep 2003 15:35:21 +0000 Subject: 2003-09-25 Michael Koch * gnu/java/nio/SelectorImpl.java (selectNow): Made final, throws IOException. (select): Likewise. (getFDsAsArray): Made final. (selectedKeys): Likewise. (wakeup): Likewise. (deregisterCancelledKeys): Likewise. (register): Likewise. (ass): Removed. (add_selected): Removed. * gnu/java/nio/natSelectorImpl.cc: No need to include bstring.h or gcj/cni.h. (helper_put_filedescriptors): Rewritten. (helper_get_filedescriptors): Rewritten. From-SVN: r71779 --- libjava/gnu/java/nio/SelectorImpl.java | 32 +++++++---------- libjava/gnu/java/nio/natSelectorImpl.cc | 61 +++++++-------------------------- 2 files changed, 25 insertions(+), 68 deletions(-) (limited to 'libjava/gnu/java') diff --git a/libjava/gnu/java/nio/SelectorImpl.java b/libjava/gnu/java/nio/SelectorImpl.java index a906641..b2c2d87 100644 --- a/libjava/gnu/java/nio/SelectorImpl.java +++ b/libjava/gnu/java/nio/SelectorImpl.java @@ -80,12 +80,14 @@ public class SelectorImpl extends AbstractSelector return Collections.unmodifiableSet (keys); } - public int selectNow () + public final int selectNow() + throws IOException { return select (1); } - public int select () + public final int select() + throws IOException { return select (-1); } @@ -94,7 +96,7 @@ public class SelectorImpl extends AbstractSelector private static native int java_do_select (int[] read, int[] write, int[] except, long timeout); - private int[] getFDsAsArray (int ops) + private final int[] getFDsAsArray (int ops) { int[] result; int counter = 0; @@ -206,7 +208,7 @@ public class SelectorImpl extends AbstractSelector // If key is not yet selected add it. if (!selected.contains (key)) { - add_selected (key); + selected.add (key); } // Set new ready ops @@ -217,27 +219,17 @@ public class SelectorImpl extends AbstractSelector return ret; } - public Set selectedKeys () + public final Set selectedKeys() { return selected; } - public Selector wakeup () + public final Selector wakeup() { return null; } - public void add (SelectionKeyImpl k) - { - keys.add (k); - } - - void add_selected (SelectionKeyImpl k) - { - selected.add (k); - } - - private void deregisterCancelledKeys () + private final void deregisterCancelledKeys() { Iterator it = cancelledKeys().iterator(); @@ -253,8 +245,8 @@ public class SelectorImpl extends AbstractSelector return register ((AbstractSelectableChannel) ch, ops, att); } - protected SelectionKey register (AbstractSelectableChannel ch, int ops, - Object att) + protected final SelectionKey register (AbstractSelectableChannel ch, int ops, + Object att) { SelectionKeyImpl result; @@ -278,7 +270,7 @@ public class SelectorImpl extends AbstractSelector throw new InternalError ("No known channel type"); } - add (result); + keys.add (result); result.interestOps (ops); result.attach (att); return result; diff --git a/libjava/gnu/java/nio/natSelectorImpl.cc b/libjava/gnu/java/nio/natSelectorImpl.cc index d718582..208aa05 100644 --- a/libjava/gnu/java/nio/natSelectorImpl.cc +++ b/libjava/gnu/java/nio/natSelectorImpl.cc @@ -1,6 +1,6 @@ // natSelectorImpl.cc -/* Copyright (C) 2002 Free Software Foundation +/* Copyright (C) 2002, 2003 Free Software Foundation This file is part of libgcj. @@ -14,66 +14,31 @@ details. */ #include #include -#if HAVE_BSTRING_H -// Needed for bzero, implicitly used by FD_ZERO on IRIX 5.2 -#include -#endif - -//#include #include #include void -helper_put_filedescriptors (jintArray java_fd_array, fd_set& fds, int& max_fd) +helper_put_filedescriptors (jintArray fdArray, fd_set& fds, int& max_fd) { - int counter; - jint* java_fds; - - java_fds = elements (java_fd_array); + jint* tmpFDArray = elements (fdArray); - for (counter = 0; counter < JvGetArrayLength (java_fd_array); counter++) + for (int index = 0; index < JvGetArrayLength (fdArray); index++) { - FD_SET (java_fds [counter], &fds); + FD_SET (tmpFDArray [index], &fds); - if (java_fds [counter] > max_fd) - { - max_fd = java_fds [counter]; - } + if (tmpFDArray [index] > max_fd) + max_fd = tmpFDArray [index]; } } void -helper_get_filedescriptors (jintArray& java_fd_array, fd_set fds) +helper_get_filedescriptors (jintArray& fdArray, fd_set fds) { - int counter; - int counter_fds; - jint* java_fds; - jintArray new_array_fds; - jint* new_data_fds; - - counter_fds = 0; - java_fds = elements (java_fd_array); - - for (counter = 0; counter < JvGetArrayLength (java_fd_array); counter++) - { - if (FD_ISSET (java_fds[counter], &fds)) - { - counter_fds++; - } - } - - new_array_fds = JvNewIntArray (counter_fds); - new_data_fds = elements (new_array_fds); - - for (counter = 0; counter < JvGetArrayLength (java_fd_array); counter++) - { - if (FD_ISSET (java_fds[counter], &fds)) - { - new_data_fds[counter] = java_fds[counter]; - } - } - - java_fd_array = new_array_fds; + jint* tmpFDArray = elements (fdArray); + + for (int index = 0; index < JvGetArrayLength (fdArray); index++) + if (!FD_ISSET (tmpFDArray [index], &fds)) + tmpFDArray [index] = 0; } jint -- cgit v1.1