summaryrefslogtreecommitdiff
path: root/src/library/scala/ref/PhantomReference.scala
diff options
context:
space:
mode:
Diffstat (limited to 'src/library/scala/ref/PhantomReference.scala')
-rw-r--r--src/library/scala/ref/PhantomReference.scala8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/library/scala/ref/PhantomReference.scala b/src/library/scala/ref/PhantomReference.scala
index 7ba26389ff..73746a948f 100644
--- a/src/library/scala/ref/PhantomReference.scala
+++ b/src/library/scala/ref/PhantomReference.scala
@@ -15,7 +15,11 @@ package scala.ref
*/
class PhantomReference[+T <: AnyRef](value: T, queue: ReferenceQueue[T]) extends ReferenceWrapper[T] {
val underlying: java.lang.ref.PhantomReference[_ <: T] =
- new java.lang.ref.PhantomReference[T](value, queue.underlying.asInstanceOf[java.lang.ref.ReferenceQueue[T]])
- queue.register(this)
+ new PhantomReferenceWithWrapper[T](value, queue, this)
}
+/**
+ * @author Philipp Haller
+ */
+private class PhantomReferenceWithWrapper[T <: AnyRef](value: T, queue: ReferenceQueue[T], val wrapper: PhantomReference[T])
+ extends java.lang.ref.PhantomReference[T](value, queue.underlying.asInstanceOf[java.lang.ref.ReferenceQueue[T]]) with ReferenceWithWrapper[T]