mirror of
https://github.com/sbt/sbt.git
synced 2026-10-06 10:03:56 +02:00
Revert "Revert "Work around scalac issue causing boxing." (ClassNotFoundException)" (Reverted wrong commit.)
This reverts commit 7dac90fffe.
This commit is contained in:
+12
-10
@@ -5,6 +5,7 @@ package sbt
|
||||
package classfile
|
||||
|
||||
import java.io.{DataInputStream, File, InputStream}
|
||||
import scala.annotation.switch
|
||||
|
||||
// Translation of jdepend.framework.ClassFileParser by Mike Clark, Clarkware Consulting, Inc.
|
||||
// BSD Licensed
|
||||
@@ -132,17 +133,18 @@ private[sbt] object Parser
|
||||
pool
|
||||
}
|
||||
|
||||
private def getConstant(in: DataInputStream) =
|
||||
{
|
||||
private def getConstant(in: DataInputStream): Constant =
|
||||
{
|
||||
val tag = in.readByte()
|
||||
tag match
|
||||
{
|
||||
case ConstantClass | ConstantString => new Constant(tag, in.readUnsignedShort())
|
||||
case ConstantField | ConstantMethod | ConstantInterfaceMethod | ConstantNameAndType =>
|
||||
new Constant(tag, in.readUnsignedShort(), in.readUnsignedShort())
|
||||
case ConstantInteger => new Constant(tag, new java.lang.Integer(in.readInt()))
|
||||
case ConstantFloat => new Constant(tag, new java.lang.Float(in.readFloat()))
|
||||
case ConstantLong => new Constant(tag, new java.lang.Long(in.readLong()))
|
||||
|
||||
// No switch for byte scrutinees! Stupid compiler.
|
||||
((tag: Int): @switch) match {
|
||||
case ConstantClass | ConstantString => new Constant(tag, in.readUnsignedShort())
|
||||
case ConstantField | ConstantMethod | ConstantInterfaceMethod | ConstantNameAndType =>
|
||||
new Constant(tag, in.readUnsignedShort(), in.readUnsignedShort())
|
||||
case ConstantInteger => new Constant(tag, new java.lang.Integer(in.readInt()))
|
||||
case ConstantFloat => new Constant(tag, new java.lang.Float(in.readFloat()))
|
||||
case ConstantLong => new Constant(tag, new java.lang.Long(in.readLong()))
|
||||
case ConstantDouble => new Constant(tag, new java.lang.Double(in.readDouble()))
|
||||
case ConstantUTF8 => new Constant(tag, in.readUTF())
|
||||
case _ => error("Unknown constant: " + tag)
|
||||
|
||||
Reference in New Issue
Block a user