aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorFelix Mulder <felix.mulder@gmail.com>2016-11-14 21:14:37 +0100
committerFelix Mulder <felix.mulder@gmail.com>2016-11-14 21:14:37 +0100
commita2354dd7e347a191c6077105b136d683013dd092 (patch)
treea89d9ddabd0709980949ab9ab1a1f5c48f4e63bd /src
parentf147aedd65407056e0682e3c15f5a7265b96ffa1 (diff)
downloaddotty-a2354dd7e347a191c6077105b136d683013dd092.tar.gz
dotty-a2354dd7e347a191c6077105b136d683013dd092.tar.bz2
dotty-a2354dd7e347a191c6077105b136d683013dd092.zip
Add note detailing possible memory leak in `StoreReporter`
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/reporting/StoreReporter.scala13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/dotty/tools/dotc/reporting/StoreReporter.scala b/src/dotty/tools/dotc/reporting/StoreReporter.scala
index bde034845..586273c2e 100644
--- a/src/dotty/tools/dotc/reporting/StoreReporter.scala
+++ b/src/dotty/tools/dotc/reporting/StoreReporter.scala
@@ -8,9 +8,16 @@ import config.Printers.typr
import diagnostic.MessageContainer
import diagnostic.messages._
-/**
- * This class implements a Reporter that stores all messages
- */
+/** This class implements a Reporter that stores all messages
+ *
+ * Beware that this reporter can leak memory, and force messages in two
+ * scenarios:
+ *
+ * - During debugging `config.Printers.typr` is set from `noPrinter` to `new
+ * Printer`, which forces the message
+ * - The reporter is not flushed and the message containers capture a
+ * `Context` (about 4MB)
+ */
class StoreReporter(outer: Reporter) extends Reporter {
private var infos: mutable.ListBuffer[MessageContainer] = null