From f2d0231898a4537218656867e9356e09d05d3a85 Mon Sep 17 00:00:00 2001 From: Denton Cockburn Date: Sat, 31 Jan 2015 11:22:57 -0500 Subject: SI-9095 Memory leak in LinkedHasMap and LinkedHashSet The clear() method in scala.collection.mutable.LinkedHashSet and scala.collection.mutable.LinkedHashMap does not set lastEntry to null. In result it holds a reference to an object that was removed from the collection. --- src/library/scala/collection/mutable/LinkedHashMap.scala | 1 + src/library/scala/collection/mutable/LinkedHashSet.scala | 1 + 2 files changed, 2 insertions(+) (limited to 'src/library') diff --git a/src/library/scala/collection/mutable/LinkedHashMap.scala b/src/library/scala/collection/mutable/LinkedHashMap.scala index b64504be3d..275f490675 100644 --- a/src/library/scala/collection/mutable/LinkedHashMap.scala +++ b/src/library/scala/collection/mutable/LinkedHashMap.scala @@ -160,6 +160,7 @@ class LinkedHashMap[A, B] extends AbstractMap[A, B] override def clear() { clearTable() firstEntry = null + lastEntry = null } private def writeObject(out: java.io.ObjectOutputStream) { diff --git a/src/library/scala/collection/mutable/LinkedHashSet.scala b/src/library/scala/collection/mutable/LinkedHashSet.scala index 1768c946ed..756a2f73c1 100644 --- a/src/library/scala/collection/mutable/LinkedHashSet.scala +++ b/src/library/scala/collection/mutable/LinkedHashSet.scala @@ -112,6 +112,7 @@ class LinkedHashSet[A] extends AbstractSet[A] override def clear() { clearTable() firstEntry = null + lastEntry = null } private def writeObject(out: java.io.ObjectOutputStream) { -- cgit v1.2.3