Minor. More correct constants processing. If class without constants is added, it doesn't mean directly that others should be recompiled. Anyway, this mistake didn't lead to any bug: proto change would be detected anyway.

This commit is contained in:
Evgeny Gerashchenko
2014-10-21 17:34:58 +04:00
parent 2492fe47f3
commit 4cf7b9e20c
@@ -251,7 +251,7 @@ public class IncrementalCacheImpl(val baseDir: File): StorageOwner, IncrementalC
ConstantsMapExternalizer ConstantsMapExternalizer
) )
private fun getConstantsMap(bytes: ByteArray): Map<String, Any> { private fun getConstantsMap(bytes: ByteArray): Map<String, Any>? {
val result = HashMap<String, Any>() val result = HashMap<String, Any>()
ClassReader(bytes).accept(object : ClassVisitor(Opcodes.ASM5) { ClassReader(bytes).accept(object : ClassVisitor(Opcodes.ASM5) {
@@ -264,14 +264,14 @@ public class IncrementalCacheImpl(val baseDir: File): StorageOwner, IncrementalC
} }
}, ClassReader.SKIP_CODE or ClassReader.SKIP_DEBUG or ClassReader.SKIP_FRAMES) }, ClassReader.SKIP_CODE or ClassReader.SKIP_DEBUG or ClassReader.SKIP_FRAMES)
return result return if (result.isEmpty()) null else result
} }
public fun process(className: JvmClassName, bytes: ByteArray): Boolean { public fun process(className: JvmClassName, bytes: ByteArray): Boolean {
return put(className, getConstantsMap(bytes)) return put(className, getConstantsMap(bytes))
} }
private fun put(className: JvmClassName, constantsMap: Map<String, Any>): Boolean { private fun put(className: JvmClassName, constantsMap: Map<String, Any>?): Boolean {
val key = className.getInternalName() val key = className.getInternalName()
val oldMap = map[key] val oldMap = map[key]