SourceMapper api refactoring

This commit is contained in:
Michael Bogdanov
2016-04-19 15:11:41 +03:00
parent 225e90bbdf
commit ab2d3665a4
2 changed files with 6 additions and 9 deletions
@@ -19,7 +19,6 @@ package org.jetbrains.kotlin.codegen.inline
import gnu.trove.TIntIntHashMap
import org.jetbrains.kotlin.codegen.ClassBuilder
import org.jetbrains.kotlin.codegen.SourceInfo
import org.jetbrains.kotlin.codegen.inline2.LineNumberToMap
import org.jetbrains.org.objectweb.asm.Label
import org.jetbrains.org.objectweb.asm.MethodVisitor
import java.util.*
@@ -136,7 +135,7 @@ interface SourceMapper {
throw UnsupportedOperationException("fail")
}
open fun visitLineNumber(iv: MethodVisitor, destLineNumber: Int, start: Label, source: LineNumberToMap): Int {
open fun visitLineNumber(iv: MethodVisitor, start: Label, source: Int, sourceName: String, sourcePath:String): Int {
throw UnsupportedOperationException("fail")
}
@@ -26,8 +26,6 @@ import org.jetbrains.org.objectweb.asm.Label
import org.jetbrains.org.objectweb.asm.MethodVisitor
import java.util.*
open class LineNumberToMap(val lineNumberToMap: Int, val source: Int, val name: String, val path: String)
open class NestedSourceMapper(
override val parent: SourceMapper, val ranges: List<RangeMapping>, sourceInfo: SourceInfo
) : DefaultSourceMapper(sourceInfo) {
@@ -42,7 +40,7 @@ open class NestedSourceMapper(
} else {
val findMappingIfExists = findMappingIfExists(lineNumber)!!
val sourceLineNumber = findMappingIfExists.mapDestToSource(lineNumber)
val visitLineNumber = parent.visitLineNumber(iv, lineNumber, start, LineNumberToMap(lineNumber, sourceLineNumber, findMappingIfExists.parent!!.name, findMappingIfExists.parent!!.path))
val visitLineNumber = parent.visitLineNumber(iv, start, sourceLineNumber, findMappingIfExists.parent!!.name, findMappingIfExists.parent!!.path)
if (visitLineNumber > 0) {
visited.put(lineNumber, visitLineNumber)
}
@@ -125,13 +123,13 @@ open class DefaultSourceMapper @JvmOverloads constructor(
iv.visitLineNumber(lineNumber, start)
}
override fun visitLineNumber(iv: MethodVisitor, destLineNumber: Int, start: Label, source: LineNumberToMap): Int {
if (source.source < 0) {
override fun visitLineNumber(iv: MethodVisitor, start: Label, source: Int, sourceName: String, sourcePath: String): Int {
if (source < 0) {
//no source information, so just skip this linenumber
return -1
}
visitSource(source.name, source.path)
val mappedLineIndex = createMapping(source.source)
visitSource(sourceName, sourcePath)
val mappedLineIndex = createMapping(source)
iv.visitLineNumber(mappedLineIndex, start)
return mappedLineIndex