summaryrefslogtreecommitdiff
path: root/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2006-03-08 17:38:19 +0000
committerMartin Odersky <odersky@gmail.com>2006-03-08 17:38:19 +0000
commit3d41a873e2b40d56ec60cfca7fb2cb9cef71f7fb (patch)
tree58bdd381e98cf426d642f8e16e0349d348eb8227 /src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
parentd969657ce2bbcfeffdfd15a97f3f7ca33d877737 (diff)
downloadscala-3d41a873e2b40d56ec60cfca7fb2cb9cef71f7fb.tar.gz
scala-3d41a873e2b40d56ec60cfca7fb2cb9cef71f7fb.tar.bz2
scala-3d41a873e2b40d56ec60cfca7fb2cb9cef71f7fb.zip
Some changes to make arrays work better
Diffstat (limited to 'src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala')
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index 2dfd93b63f..4519d2fcd6 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -54,6 +54,10 @@ abstract class ClassfileParser {
}
def parse(file: AbstractFile, root: Symbol): unit = {
+ def handleError(e: Exception) = {
+ if (settings.debug.value) e.printStackTrace();//debug
+ throw new IOException("class file '" + in.file + "' is broken")
+ }
assert(!busy);
busy = true;
this.in = new AbstractFileReader(file);
@@ -71,10 +75,8 @@ abstract class ClassfileParser {
this.pool = new ConstantPool;
parseClass()
} catch {
- case e: RuntimeException =>
- e.printStackTrace();
- if (settings.debug.value)
- throw new IOException("class file '" + in.file + "' is broken")
+ case e: FatalError => handleError(e)
+ case e: RuntimeException => handleError(e)
}
busy = false
}