diff options
author | Andrew Haley <aph@redhat.com> | 2016-09-30 16:24:48 +0000 |
---|---|---|
committer | Andrew Haley <aph@gcc.gnu.org> | 2016-09-30 16:24:48 +0000 |
commit | 07b78716af6a9d7c9fd1e94d9baf94a52c873947 (patch) | |
tree | 3f22b3241c513ad168c8353805614ae1249410f4 /libjava/classpath/java/lang/ref | |
parent | eae993948bae8b788c53772bcb9217c063716f93 (diff) | |
download | gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.zip gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.gz gcc-07b78716af6a9d7c9fd1e94d9baf94a52c873947.tar.bz2 |
Makefile.def: Remove libjava.
2016-09-30 Andrew Haley <aph@redhat.com>
* Makefile.def: Remove libjava.
* Makefile.tpl: Likewise.
* Makefile.in: Regenerate.
* configure.ac: Likewise.
* configure: Likewise.
* gcc/java: Remove.
* libjava: Likewise.
From-SVN: r240662
Diffstat (limited to 'libjava/classpath/java/lang/ref')
-rw-r--r-- | libjava/classpath/java/lang/ref/PhantomReference.java | 73 | ||||
-rw-r--r-- | libjava/classpath/java/lang/ref/Reference.java | 176 | ||||
-rw-r--r-- | libjava/classpath/java/lang/ref/ReferenceQueue.java | 164 | ||||
-rw-r--r-- | libjava/classpath/java/lang/ref/SoftReference.java | 84 | ||||
-rw-r--r-- | libjava/classpath/java/lang/ref/WeakReference.java | 79 | ||||
-rw-r--r-- | libjava/classpath/java/lang/ref/package.html | 46 |
6 files changed, 0 insertions, 622 deletions
diff --git a/libjava/classpath/java/lang/ref/PhantomReference.java b/libjava/classpath/java/lang/ref/PhantomReference.java deleted file mode 100644 index 29215ea..0000000 --- a/libjava/classpath/java/lang/ref/PhantomReference.java +++ /dev/null @@ -1,73 +0,0 @@ -/* java.lang.ref.PhantomReference - Copyright (C) 1999, 2004 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.lang.ref; - -/** - * A phantom reference is useful, to get notified, when an object got - * finalized. You can't access that object though, since it is - * finalized. This is the reason, why <code>get()</code> always - * returns null. - * - * @author Jochen Hoenicke - */ -public class PhantomReference<T> - extends Reference<T> -{ - /** - * Creates a new phantom reference. - * @param referent the object that should be watched. - * @param q the queue that should be notified, if the referent was - * finalized. This mustn't be <code>null</code>. - * @exception NullPointerException if q is null. - */ - public PhantomReference(T referent, ReferenceQueue<? super T> q) - { - super(referent, q); - } - - /** - * Returns the object, this reference refers to. - * @return <code>null</code>, since the refered object may be - * finalized and thus not accessible. - */ - public T get() - { - return null; - } -} diff --git a/libjava/classpath/java/lang/ref/Reference.java b/libjava/classpath/java/lang/ref/Reference.java deleted file mode 100644 index 37cda6f..0000000 --- a/libjava/classpath/java/lang/ref/Reference.java +++ /dev/null @@ -1,176 +0,0 @@ -/* java.lang.ref.Reference - Copyright (C) 1999, 2002, 2003, 2004, 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.lang.ref; - -/** - * This is the base class of all references. A reference allows - * refering to an object without preventing the garbage collector to - * collect it. The only way to get the referred object is via the - * <code>get()</code>-method. This method will return - * <code>null</code> if the object was collected. <br> - * - * A reference may be registered with a queue. When a referred - * element gets collected the reference will be put on the queue, so - * that you will be notified. <br> - * - * There are currently three types of references: soft reference, - * weak reference and phantom reference. <br> - * - * Soft references will be cleared if the garbage collector is told - * to free some memory and there are no unreferenced or weakly referenced - * objects. It is useful for caches. <br> - * - * Weak references will be cleared as soon as the garbage collector - * determines that the refered object is only weakly reachable. They - * are useful as keys in hashtables (see <code>WeakHashtable</code>) as - * you get notified when nobody has the key anymore. - * - * Phantom references don't prevent finalization. If an object is only - * phantom reachable, it will be finalized, and the reference will be - * enqueued, but not cleared. Since you mustn't access an finalized - * object, the <code>get</code> method of a phantom reference will never - * work. It is useful to keep track, when an object is finalized. - * - * @author Jochen Hoenicke - * @see java.util.WeakHashMap - */ -public abstract class Reference<T> -{ - /** - * The underlying object. This field is handled in a special way by - * the garbage collector. - */ - T referent; - - /** - * The queue this reference is registered on. This is null, if this - * wasn't registered to any queue or reference was already enqueued. - */ - volatile ReferenceQueue<? super T> queue; - - /** - * Link to the next entry on the queue. If this is null, this - * reference is not enqueued. Otherwise it points to the next - * reference. The last reference on a queue will point to itself - * (not to null, that value is used to mark a not enqueued - * reference). - */ - volatile Reference nextOnQueue; - - /** - * This lock should be taken by the garbage collector, before - * determining reachability. It will prevent the get()-method to - * return the reference so that reachability doesn't change. - */ - static Object lock = new Object(); - - /** - * Creates a new reference that is not registered to any queue. - * Since it is package private, it is not possible to overload this - * class in a different package. - * @param ref the object we refer to. - */ - Reference(T ref) - { - referent = ref; - } - - /** - * Creates a reference that is registered to a queue. Since this is - * package private, it is not possible to overload this class in a - * different package. - * @param ref the object we refer to. - * @param q the reference queue to register on. - * @exception NullPointerException if q is null. - */ - Reference(T ref, ReferenceQueue<? super T> q) - { - if (q == null) - throw new NullPointerException(); - referent = ref; - queue = q; - } - - /** - * Returns the object, this reference refers to. - * @return the object, this reference refers to, or null if the - * reference was cleared. - */ - public T get() - { - synchronized (lock) - { - return referent; - } - } - - /** - * Clears the reference, so that it doesn't refer to its object - * anymore. For soft and weak references this is called by the - * garbage collector. For phantom references you should call - * this when enqueuing the reference. - */ - public void clear() - { - referent = null; - } - - /** - * Tells if the object is enqueued on a reference queue. - * @return true if it is enqueued, false otherwise. - */ - public boolean isEnqueued() - { - return nextOnQueue != null; - } - - /** - * Enqueue an object on a reference queue. This is normally executed - * by the garbage collector. - */ - public boolean enqueue() - { - ReferenceQueue q = queue; - if (q != null) - { - return q.enqueue(this); - } - return false; - } -} diff --git a/libjava/classpath/java/lang/ref/ReferenceQueue.java b/libjava/classpath/java/lang/ref/ReferenceQueue.java deleted file mode 100644 index 73f62d6..0000000 --- a/libjava/classpath/java/lang/ref/ReferenceQueue.java +++ /dev/null @@ -1,164 +0,0 @@ -/* java.lang.ref.ReferenceQueue - Copyright (C) 1999, 2004, 2006 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.lang.ref; - -/** - * This is the queue, where references can enqueue themselve on. Each - * reference may be registered to a queue at initialization time and - * will be appended to the queue, when the enqueue method is called. - * - * The enqueue method may be automatically called by the garbage - * collector if it detects, that the object is only reachable through - * the Reference objects. - * - * @author Jochen Hoenicke - * @see Reference#enqueue() - */ -public class ReferenceQueue<T> -{ - /** - * This is a linked list of references. If this is null, the list is - * empty. Otherwise this points to the first reference on the queue. - * The first reference will point to the next reference via the - * <code>nextOnQueue</code> field. The last reference will point to - * itself (not to null, since <code>nextOnQueue</code> is used to - * determine if a reference is enqueued). - */ - private Reference<? extends T> first; - - /** - * This is the lock that protects our linked list and is used to signal - * a thread waiting in remove(). - */ - private final Object lock = new Object(); - - /** - * Creates a new empty reference queue. - */ - public ReferenceQueue() - { - } - - /** - * Checks if there is a reference on the queue, returning it - * immediately. The reference will be dequeued. - * - * @return a reference on the queue, if there is one, - * <code>null</code> otherwise. - */ - public Reference<? extends T> poll() - { - return dequeue(); - } - - /** - * This is called by reference to enqueue itself on this queue. - * @param ref the reference that should be enqueued. - * @return true if successful, false if not. - */ - final boolean enqueue(Reference<? extends T> ref) - { - synchronized (lock) - { - if (ref.queue != this) - return false; - - /* last reference will point to itself */ - ref.nextOnQueue = first == null ? ref : first; - ref.queue = null; - first = ref; - /* this wakes only one remove thread. */ - lock.notify(); - return true; - } - } - - /** - * Remove a reference from the queue, if there is one. - * @return the first element of the queue, or null if there isn't any. - */ - private Reference<? extends T> dequeue() - { - synchronized (lock) - { - if (first == null) - return null; - - Reference<? extends T> result = first; - first = (first == first.nextOnQueue) ? null : first.nextOnQueue; - result.nextOnQueue = null; - return result; - } - } - - /** - * Removes a reference from the queue, blocking for <code>timeout</code> - * until a reference is enqueued. - * @param timeout the timeout period in milliseconds, <code>0</code> means - * wait forever. - * @return the reference removed from the queue, or - * <code>null</code> if timeout period expired. - * @exception InterruptedException if the wait was interrupted. - */ - public Reference<? extends T> remove(long timeout) - throws InterruptedException - { - synchronized (lock) - { - if (first == null) - lock.wait(timeout); - } - - return dequeue(); - } - - - /** - * Removes a reference from the queue, blocking until a reference is - * enqueued. - * - * @return the reference removed from the queue. - * @exception InterruptedException if the wait was interrupted. - */ - public Reference<? extends T> remove() - throws InterruptedException - { - return remove(0L); - } -} diff --git a/libjava/classpath/java/lang/ref/SoftReference.java b/libjava/classpath/java/lang/ref/SoftReference.java deleted file mode 100644 index 269ffd0..0000000 --- a/libjava/classpath/java/lang/ref/SoftReference.java +++ /dev/null @@ -1,84 +0,0 @@ -/* java.lang.ref.SoftReference - Copyright (C) 1999, 2004 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.lang.ref; - -/** - * A soft reference will be cleared, if the object is only softly - * reachable and the garbage collection needs more memory. The garbage - * collection will use an intelligent strategy to determine which soft - * references it should clear. This makes a soft reference ideal for - * caches.<br> - * - * @author Jochen Hoenicke - */ -public class SoftReference<T> - extends Reference<T> -{ - /** - * Create a new soft reference, that is not registered to any queue. - * @param referent the object we refer to. - */ - public SoftReference(T referent) - { - super(referent); - } - - /** - * Create a new soft reference. - * @param referent the object we refer to. - * @param q the reference queue to register on. - * @exception NullPointerException if q is null. - */ - public SoftReference(T referent, ReferenceQueue<? super T> q) - { - super(referent, q); - } - - /** - * Returns the object, this reference refers to. - * @return the object, this reference refers to, or null if the - * reference was cleared. - */ - public T get() - { - /* Why is this overloaded??? - * Maybe for a kind of LRU strategy. */ - return super.get(); - } -} diff --git a/libjava/classpath/java/lang/ref/WeakReference.java b/libjava/classpath/java/lang/ref/WeakReference.java deleted file mode 100644 index 9735643..0000000 --- a/libjava/classpath/java/lang/ref/WeakReference.java +++ /dev/null @@ -1,79 +0,0 @@ -/* java.lang.ref.WeakReference - Copyright (C) 1999, 2004 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. */ - - -package java.lang.ref; - -/** - * A weak reference will be cleared, if the object is only weakly - * reachable. It is useful for lookup tables, where you aren't - * interested in an entry, if the key isn't reachable anymore. - * <code>WeakHashtable</code> is a complete implementation of such a - * table. <br> - * - * It is also useful to make objects unique: You create a set of weak - * references to those objects, and when you create a new object you - * look in this set, if the object already exists and return it. If - * an object is not referenced anymore, the reference will - * automatically cleared, and you may remove it from the set. <br> - * - * @author Jochen Hoenicke - * @see java.util.WeakHashMap - */ -public class WeakReference<T> - extends Reference<T> -{ - /** - * Create a new weak reference, that is not registered to any queue. - * @param referent the object we refer to. - */ - public WeakReference(T referent) - { - super(referent); - } - - /** - * Create a new weak reference. - * @param referent the object we refer to. - * @param q the reference queue to register on. - * @exception NullPointerException if q is null. - */ - public WeakReference(T referent, ReferenceQueue<? super T> q) - { - super(referent, q); - } -} diff --git a/libjava/classpath/java/lang/ref/package.html b/libjava/classpath/java/lang/ref/package.html deleted file mode 100644 index d3d1762..0000000 --- a/libjava/classpath/java/lang/ref/package.html +++ /dev/null @@ -1,46 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> -<!-- package.html - describes classes in java.lang.ref package. - Copyright (C) 2002 Free Software Foundation, Inc. - -This file is part of GNU Classpath. - -GNU Classpath is free software; you can redistribute it and/or modify -it under the terms of the GNU General Public License as published by -the Free Software Foundation; either version 2, or (at your option) -any later version. - -GNU Classpath is distributed in the hope that it will be useful, but -WITHOUT ANY WARRANTY; without even the implied warranty of -MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -General Public License for more details. - -You should have received a copy of the GNU General Public License -along with GNU Classpath; see the file COPYING. If not, write to the -Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA -02110-1301 USA. - -Linking this library statically or dynamically with other modules is -making a combined work based on this library. Thus, the terms and -conditions of the GNU General Public License cover the whole -combination. - -As a special exception, the copyright holders of this library give you -permission to link this library with independent modules to produce an -executable, regardless of the license terms of these independent -modules, and to copy and distribute the resulting executable under -terms of your choice, provided that you also meet, for each linked -independent module, the terms and conditions of the license of that -module. An independent module is a module which is not derived from -or based on this library. If you modify this library, you may extend -this exception to your version of the library, but you are not -obligated to do so. If you do not wish to do so, delete this -exception statement from your version. --> - -<html> -<head><title>GNU Classpath - java.lang.ref</title></head> - -<body> -<p>Low level manipulation and monitoring of object references.</p> - -</body> -</html> |