From a09af55ae3fa90bc40d7e482b82c63d824f62957 Mon Sep 17 00:00:00 2001 From: NAME Date: Tue, 5 Feb 2008 17:51:42 +0000 Subject: Fixed #444 --- src/library/scala/ref/ReferenceQueue.scala | 14 +++++++------- src/library/scala/ref/ReferenceWrapper.scala | 11 ++++------- 2 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/library/scala/ref/ReferenceQueue.scala b/src/library/scala/ref/ReferenceQueue.scala index 486c5be975..1a4e9ea2e0 100644 --- a/src/library/scala/ref/ReferenceQueue.scala +++ b/src/library/scala/ref/ReferenceQueue.scala @@ -15,13 +15,13 @@ package scala.ref */ class ReferenceQueue[+T <: AnyRef] { private[ref] val underlying: java.lang.ref.ReferenceQueue[_ <: T] = new java.lang.ref.ReferenceQueue[T] - override def toString = underlying.toString; - class Wrapper[U <: AnyRef](val underlying: java.lang.ref.Reference[U]) extends ReferenceWrapper[U] - def Wrapper[U <: AnyRef](ref: java.lang.ref.Reference[U]) = ref match { + override def toString = underlying.toString + protected class Wrapper[U <: AnyRef](val underlying: java.lang.ref.Reference[U]) extends ReferenceWrapper[U] + protected def Wrapper[U <: AnyRef](ref: java.lang.ref.Reference[U]) = ref match { case null => None - case ref => new Wrapper(ref) + case ref => Some(new Wrapper(ref)) } - def poll = Wrapper(underlying.poll) - def remove = Wrapper(underlying.remove) - def remove(timeout: Long) = Wrapper(underlying.remove(timeout)) + def poll: Option[Reference[T]] = Wrapper(underlying.poll) + def remove: Option[Reference[T]] = Wrapper(underlying.remove) + def remove(timeout: Long): Option[Reference[T]] = Wrapper(underlying.remove(timeout)) } diff --git a/src/library/scala/ref/ReferenceWrapper.scala b/src/library/scala/ref/ReferenceWrapper.scala index 7c01e121d9..b522e43c82 100644 --- a/src/library/scala/ref/ReferenceWrapper.scala +++ b/src/library/scala/ref/ReferenceWrapper.scala @@ -11,9 +11,9 @@ package scala.ref /** - * @author Seam McDirmid + * @author Sean McDirmid */ -trait ReferenceWrapper[+T <: AnyRef] extends Reference[T] { +trait ReferenceWrapper[+T <: AnyRef] extends Reference[T] extends Proxy { val underlying: java.lang.ref.Reference[_ <: T] @deprecated def isValid = underlying.get != null override def get = { @@ -28,9 +28,6 @@ trait ReferenceWrapper[+T <: AnyRef] extends Reference[T] { def clear = underlying.clear def enqueue = underlying.enqueue def isEnqueued = underlying.isEnqueued - override def hashCode = underlying.hashCode - override def equals(that : Any) = that match { - case that : ReferenceWrapper[_] => get equals that.get - case that => super.equals(that) - } + + def self = underlying } -- cgit v1.2.3