summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Carlstrom <bdc@google.com>2012-08-01 14:03:23 -0700
committerandroid code review <noreply-gerritcodereview@google.com>2012-08-01 14:03:24 -0700
commit8438df1f4e63f44b416da21b354ed42c582bd973 (patch)
tree9edbb679d5421acdabf2c7ad2a97d25c4b920121
parent47404489ac33f10223be78932dbe5b9dcd8a5aee (diff)
parent2680db46e43b69cc1c49429d371cd1c7512d6f2c (diff)
downloadlibcore-8438df1f4e63f44b416da21b354ed42c582bd973.zip
libcore-8438df1f4e63f44b416da21b354ed42c582bd973.tar.gz
libcore-8438df1f4e63f44b416da21b354ed42c582bd973.tar.bz2
Merge "Clean up lint in java.lang.ref."
-rw-r--r--luni/src/main/java/java/lang/ref/FinalizerReference.java23
-rw-r--r--luni/src/main/java/java/lang/ref/Reference.java5
-rw-r--r--luni/src/main/java/java/lang/ref/ReferenceQueue.java4
3 files changed, 15 insertions, 17 deletions
diff --git a/luni/src/main/java/java/lang/ref/FinalizerReference.java b/luni/src/main/java/java/lang/ref/FinalizerReference.java
index 7a6d871..14eaae4 100644
--- a/luni/src/main/java/java/lang/ref/FinalizerReference.java
+++ b/luni/src/main/java/java/lang/ref/FinalizerReference.java
@@ -28,11 +28,11 @@ public final class FinalizerReference<T> extends Reference<T> {
// This list contains a FinalizerReference for every finalizable object in the heap.
// Objects in this list may or may not be eligible for finalization yet.
- private static FinalizerReference head = null;
+ private static FinalizerReference<?> head = null;
// The links used to construct the list.
- private FinalizerReference prev;
- private FinalizerReference next;
+ private FinalizerReference<?> prev;
+ private FinalizerReference<?> next;
// When the GC wants something finalized, it moves it from the 'referent' field to
// the 'zombie' field instead.
@@ -50,7 +50,7 @@ public final class FinalizerReference<T> extends Reference<T> {
zombie = null;
}
- static void add(Object referent) {
+ public static void add(Object referent) {
FinalizerReference<?> reference = new FinalizerReference<Object>(referent, queue);
synchronized (LIST_LOCK) {
reference.prev = null;
@@ -62,10 +62,10 @@ public final class FinalizerReference<T> extends Reference<T> {
}
}
- public static void remove(FinalizerReference reference) {
+ public static void remove(FinalizerReference<?> reference) {
synchronized (LIST_LOCK) {
- FinalizerReference next = reference.next;
- FinalizerReference prev = reference.prev;
+ FinalizerReference<?> next = reference.next;
+ FinalizerReference<?> prev = reference.prev;
reference.next = null;
reference.prev = null;
if (prev != null) {
@@ -93,11 +93,12 @@ public final class FinalizerReference<T> extends Reference<T> {
// When a finalizable object is allocated, a FinalizerReference is added to the list.
// We search the list for that FinalizerReference (it should be at or near the head),
// and then put it on the queue so that it can be finalized.
- for (FinalizerReference r = head; r != null; r = r.next) {
+ for (FinalizerReference<?> r = head; r != null; r = r.next) {
if (r.referent == sentinel) {
- r.referent = null;
- r.zombie = sentinel;
- r.enqueueInternal();
+ FinalizerReference<Sentinel> sentinelReference = (FinalizerReference<Sentinel>) r;
+ sentinelReference.referent = null;
+ sentinelReference.zombie = sentinel;
+ sentinelReference.enqueueInternal();
return;
}
}
diff --git a/luni/src/main/java/java/lang/ref/Reference.java b/luni/src/main/java/java/lang/ref/Reference.java
index 85fbb04..9cf49a7 100644
--- a/luni/src/main/java/java/lang/ref/Reference.java
+++ b/luni/src/main/java/java/lang/ref/Reference.java
@@ -55,8 +55,7 @@ public abstract class Reference<T> {
* VM requirement: this field <em>must</em> be called "queue"
* and be a java.lang.ref.ReferenceQueue.
*/
- @SuppressWarnings("unchecked")
- volatile ReferenceQueue queue;
+ volatile ReferenceQueue<? super T> queue;
/**
* Used internally by java.lang.ref.ReferenceQueue.
@@ -82,7 +81,7 @@ public abstract class Reference<T> {
Reference() {
}
- Reference(T r, ReferenceQueue q) {
+ Reference(T r, ReferenceQueue<? super T> q) {
referent = r;
queue = q;
}
diff --git a/luni/src/main/java/java/lang/ref/ReferenceQueue.java b/luni/src/main/java/java/lang/ref/ReferenceQueue.java
index 6c9b4d5..2b8089c 100644
--- a/luni/src/main/java/java/lang/ref/ReferenceQueue.java
+++ b/luni/src/main/java/java/lang/ref/ReferenceQueue.java
@@ -131,8 +131,6 @@ public class ReferenceQueue<T> {
*
* @param reference
* reference object to be enqueued.
- * @return boolean true if reference is enqueued. false if reference failed
- * to enqueue.
*/
synchronized void enqueue(Reference<? extends T> reference) {
if (head == null) {
@@ -145,7 +143,7 @@ public class ReferenceQueue<T> {
}
/** @hide */
- public static Reference unenqueued = null;
+ public static Reference<?> unenqueued = null;
static void add(Reference<?> list) {
synchronized (ReferenceQueue.class) {