2003-09-25 Michael Koch <konqueror@gmx.de>

* 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
This commit is contained in:
Michael Koch 2003-09-25 15:35:21 +00:00 committed by Michael Koch
parent bc7ac0d88b
commit 6cbaf0385b
3 changed files with 42 additions and 68 deletions

View File

@ -1,3 +1,20 @@
2003-09-25 Michael Koch <konqueror@gmx.de>
* 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.
2003-09-25 Sascha Brawer <brawer@dandelis.ch>
* java/awt/font/FontRenderContext.java (getTransform): Return

View File

@ -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;

View File

@ -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 <errno.h>
#include <string.h>
#if HAVE_BSTRING_H
// Needed for bzero, implicitly used by FD_ZERO on IRIX 5.2
#include <bstring.h>
#endif
//#include <gcj/cni.h>
#include <gnu/java/nio/SelectorImpl.h>
#include <java/io/IOException.h>
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;
jint* tmpFDArray = elements (fdArray);
java_fds = elements (java_fd_array);
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