javaprims.h: Updated class declaration list.

* gcj/javaprims.h: Updated class declaration list.
	* Makefile.in: Rebuilt.
	* Makefile.am (core_java_source_files): Added
	PropertyPermissionCollection.java.
	* java/lang/Thread.java (group, name): Now package-private.
	* java/lang/ThreadGroup.java: Re-merge with Classpath.
	* java/util/AbstractList.java: Likewise.
	* java/util/AbstractMap.java: Likewise.
	* java/util/Calendar.java: Likewise.
	* java/util/Collections.java: Likewise.
	* java/util/HashMap.java: Likewise.
	* java/util/Hashtable.java: Likewise.
	* java/util/LinkedHashMap.java: Likewise.
	* java/util/LinkedList.java: Likewise.
	* java/util/List.java: Likewise.
	* java/util/ListResourceBundle.java: Likewise.
	* java/util/Map.java: Likewise.
	* java/util/Observable.java: Likewise.
	* java/util/Properties.java: Likewise.
	* java/util/PropertyPermission.java: Likewise.
	* java/util/PropertyPermissionCollection.java: Likewise.
	* java/util/PropertyResourceBundle.java: Likewise.
	* java/util/Random.java: Likewise.
	* java/util/SimpleTimeZone.java: Likewise.
	* java/util/StringTokenizer.java: Likewise.
	* java/util/TimerTask.java: Likewise.
	* java/util/TreeMap.java: Likewise.
	* java/util/WeakHashMap.java: Likewise.
	* java/util/jar/Attributes.java: Likewise.
	* java/util/jar/JarException.java: Likewise.
	* java/util/jar/Manifest.java: Likewise.

From-SVN: r54743
This commit is contained in:
Tom Tromey 2002-06-18 15:40:16 +00:00 committed by Tom Tromey
parent 0fd534ed06
commit 3831381763
31 changed files with 2304 additions and 1518 deletions

View file

@ -1,4 +1,4 @@
/* java.util.WeakHashMap -- a hashtable that keeps only weak references
/* WeakHashMap -- a hashtable that keeps only weak references
to its keys, allowing the virtual machine to reclaim them
Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
@ -43,41 +43,41 @@ import java.lang.ref.WeakReference;
import java.lang.ref.ReferenceQueue;
/**
* A weak hash map has only weak references to the key. This means
* that it allows the key to be garbage collected if they are not used
* otherwise. If this happens, the weak hash map will eventually
* remove the whole entry from this map. <br>
* A weak hash map has only weak references to the key. This means that it
* allows the key to be garbage collected if it is not used otherwise. If
* this happens, the entry will eventually disappear from the map,
* asynchronously.
*
* A weak hash map makes most sense, if the keys doesn't override the
* <code>equals</code>-method: If there is no other reference to the
* <p>A weak hash map makes most sense when the keys doesn't override the
* <code>equals</code> method: If there is no other reference to the
* key nobody can ever look up the key in this table and so the entry
* can be removed. This table also works, if the <code>equals</code>
* method is overloaded, e.g. with Strings as keys, but you should be
* prepared that some entries disappear spontaneously. <br>
* can be removed. This table also works when the <code>equals</code>
* method is overloaded, such as String keys, but you should be prepared
* to deal with some entries disappearing spontaneously.
*
* You should also be prepared that this hash map behaves very
* strange: The size of this map may spontaneously shrink (even if you
* use a synchronized map and synchronize it); it behaves as if
* another thread removes entries from this table without
* synchronizations. The entry set returned by <code>entrySet</code>
* <p>Other strange behaviors to be aware of: The size of this map may
* spontaneously shrink (even if you use a synchronized map and synchronize
* it); it behaves as if another thread removes entries from this table
* without synchronization. The entry set returned by <code>entrySet</code>
* has similar phenomenons: The size may spontaneously shrink, or an
* entry, that was in the set before, suddenly disappears. <br>
* entry, that was in the set before, suddenly disappears.
*
* A weak hash map is not meant for caches; use a normal map, with
* soft references as values instead, or try {@link LinkedHashMap}. <br>
* <p>A weak hash map is not meant for caches; use a normal map, with
* soft references as values instead, or try {@link LinkedHashMap}.
*
* The weak hash map supports null values and null keys. The null key
* is never deleted from the map (except explictly of course).
* The performance of the methods are similar to that of a hash map. <br>
* <p>The weak hash map supports null values and null keys. The null key
* is never deleted from the map (except explictly of course). The
* performance of the methods are similar to that of a hash map.
*
* The value objects are strongly referenced by this table. So if a
* <p>The value objects are strongly referenced by this table. So if a
* value object maintains a strong reference to the key (either direct
* or indirect) the key will never be removed from this map. According
* to Sun, this problem may be fixed in a future release. It is not
* possible to do it with the jdk 1.2 reference model, though.
*
* @author Jochen Hoenicke
* @author Eric Blake <ebb9@email.byu.edu>
* @author Eric Blake (ebb9@email.byu.edu)
*
* @see HashMap
* @see WeakReference
* @see LinkedHashMap
@ -86,6 +86,9 @@ import java.lang.ref.ReferenceQueue;
*/
public class WeakHashMap extends AbstractMap implements Map
{
// WARNING: WeakHashMap is a CORE class in the bootstrap cycle. See the
// comments in vm/reference/java/lang/Runtime for implications of this fact.
/**
* The default capacity for an instance of HashMap.
* Sun's documentation mildly suggests that this (11) is the correct
@ -148,7 +151,7 @@ public class WeakHashMap extends AbstractMap implements Map
/**
* The rounded product of the capacity (i.e. number of buckets) and
* the load factor. When the number of elements exceeds the
* threshold, the HashMap calls <pre>rehash()</pre>.
* threshold, the HashMap calls <code>rehash()</code>.
*/
private int threshold;
@ -364,11 +367,11 @@ public class WeakHashMap extends AbstractMap implements Map
/**
* The slot of this entry. This should be
* <pre>
* Math.abs(key.hashCode() % buckets.length)
* </pre>
* <code>Math.abs(key.hashCode() % buckets.length)</code>.
*
* But since the key may be silently removed we have to remember
* the slot number.
*
* If this bucket was removed the slot is -1. This marker will
* prevent the bucket from being removed twice.
*/
@ -503,9 +506,10 @@ public class WeakHashMap extends AbstractMap implements Map
private final WeakEntrySet theEntrySet;
/**
* The hash buckets. These are linked lists.
* The hash buckets. These are linked lists. Package visible for use in
* nested classes.
*/
private WeakBucket[] buckets;
WeakBucket[] buckets;
/**
* Creates a new weak hash map with default load factor and default
@ -676,10 +680,12 @@ public class WeakHashMap extends AbstractMap implements Map
/**
* Removes a bucket from this hash map, if it wasn't removed before
* (e.g. one time through rehashing and one time through reference queue)
* (e.g. one time through rehashing and one time through reference queue).
* Package visible for use in nested classes.
*
* @param bucket the bucket to remove.
*/
private void internalRemove(WeakBucket bucket)
void internalRemove(WeakBucket bucket)
{
int slot = bucket.slot;
if (slot == -1)
@ -870,4 +876,4 @@ public class WeakHashMap extends AbstractMap implements Map
cleanQueue();
return super.values();
}
}
} // class WeakHashMap