diff options
author | Paul Phillips <paulp@improving.org> | 2013-05-03 17:39:51 -0700 |
---|---|---|
committer | Paul Phillips <paulp@improving.org> | 2013-05-03 17:40:10 -0700 |
commit | a86c7a15d1a58e828b61fc12a8b3d0ef0b2f8061 (patch) | |
tree | 490f0dbf6c7e64883b2ce4f59aa556a70b835051 /src/compiler/scala/tools/nsc/backend/icode/analysis | |
parent | 6eb33d4ad15ae3548c21535de652ea246582a44f (diff) | |
download | scala-a86c7a15d1a58e828b61fc12a8b3d0ef0b2f8061.tar.gz scala-a86c7a15d1a58e828b61fc12a8b3d0ef0b2f8061.tar.bz2 scala-a86c7a15d1a58e828b61fc12a8b3d0ef0b2f8061.zip |
Hardening against nulls for deserialization.
When one attempts to populate data structures via
deserialization, nulls tend to show up in unlikely or
"impossible" places. Now there are a few fewer.
Diffstat (limited to 'src/compiler/scala/tools/nsc/backend/icode/analysis')
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala | 3 | ||||
-rw-r--r-- | src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala | 3 |
2 files changed, 4 insertions, 2 deletions
diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala index 338a07c872..d3016b2d9b 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/CopyPropagation.scala @@ -541,7 +541,8 @@ abstract class CopyPropagation { m.isGetter // abstract getters are still pure, as we 'know' final override def toString() = ( - method.blocks map { b => + if (method eq null) List("<null>") + else method.blocks map { b => "\nIN(%s):\t Bindings: %s".format(b.label, in(b).bindings) + "\nIN(%s):\t Stack: %s".format(b.label, in(b).stack) } diff --git a/src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala b/src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala index 26b7bc50d8..fecd48ed27 100644 --- a/src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala +++ b/src/compiler/scala/tools/nsc/backend/icode/analysis/ReachingDefinitions.scala @@ -240,7 +240,8 @@ abstract class ReachingDefinitions { findDefs(bb, idx, m, 0) override def toString: String = { - method.code.blocks map { b => + if (method eq null) "<null>" + else method.code.blocks map { b => " entry(%s) = %s\n".format(b, in(b)) + " exit(%s) = %s\n".format(b, out(b)) } mkString ("ReachingDefinitions {\n", "\n", "\n}") |