Fix NPE with origin calculation

This commit is contained in:
Michael Bogdanov
2015-03-17 18:13:51 +03:00
parent 0ddec2d9b5
commit d765d899a7
@@ -25,6 +25,7 @@ import java.util.Collections
import java.util.ArrayList import java.util.ArrayList
import org.jetbrains.kotlin.codegen.SourceInfo import org.jetbrains.kotlin.codegen.SourceInfo
import org.jetbrains.kotlin.codegen.ClassBuilder import org.jetbrains.kotlin.codegen.ClassBuilder
import kotlin.properties.Delegates
//TODO join parameter //TODO join parameter
public class SMAPBuilder(val source: String, public class SMAPBuilder(val source: String,
@@ -186,12 +187,11 @@ public open class DefaultSourceMapper(val sourceInfo: SourceInfo, override val p
private var lastMappedWithChanges: RawFileMapping? = null private var lastMappedWithChanges: RawFileMapping? = null
var fileMappings: LinkedHashMap<String, RawFileMapping> = linkedMapOf(); var fileMappings: LinkedHashMap<String, RawFileMapping> = linkedMapOf()
protected val origin: RawFileMapping protected var origin: RawFileMapping by Delegates.notNull();
{ {
visitSource(sourceInfo.source, sourceInfo.pathOrCleanFQN) visitSource(sourceInfo.source, sourceInfo.pathOrCleanFQN)
origin = lastVisited!!
//map interval //map interval
(1..maxUsedValue).forEach {origin.mapLine(it, it - 1, true) } (1..maxUsedValue).forEach {origin.mapLine(it, it - 1, true) }
} }
@@ -201,6 +201,10 @@ public open class DefaultSourceMapper(val sourceInfo: SourceInfo, override val p
override fun visitSource(name: String, path: String) { override fun visitSource(name: String, path: String) {
lastVisited = fileMappings.getOrPut("$name#$path", { RawFileMapping(name, path) }) lastVisited = fileMappings.getOrPut("$name#$path", { RawFileMapping(name, path) })
//TEMPORARY HACK
if (fileMappings.size() == 1) {
origin = lastVisited!!
}
} }
override fun visitOrigin() { override fun visitOrigin() {