summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorNAME <USER@epfl.ch>2008-02-05 17:51:42 +0000
committerNAME <USER@epfl.ch>2008-02-05 17:51:42 +0000
commita09af55ae3fa90bc40d7e482b82c63d824f62957 (patch)
tree359b790ab8b3fc428fa24ceebc1a950f0f066210 /src
parent864c5a385a8a75c84d8ef7e444d0de3478133cc9 (diff)
downloadscala-a09af55ae3fa90bc40d7e482b82c63d824f62957.tar.gz
scala-a09af55ae3fa90bc40d7e482b82c63d824f62957.tar.bz2
scala-a09af55ae3fa90bc40d7e482b82c63d824f62957.zip
Fixed #444
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/ref/ReferenceQueue.scala14
-rw-r--r--src/library/scala/ref/ReferenceWrapper.scala11
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
}