Do not do unnecessary writeBooleanAttribute
Merge-request: KT-MR-10945 Merged-by: Vladimir Dolzhenko <Vladimir.Dolzhenko@jetbrains.com>
This commit is contained in:
committed by
Space Team
parent
988dbfc5c8
commit
3c8c20f8d2
+16
-7
@@ -42,10 +42,11 @@ class ClsKotlinBinaryClassCache {
|
|||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
getKotlinBinaryFromCache(file)?.let {
|
val binaryFromCache = getKotlinBinaryFromCache(file)
|
||||||
|
binaryFromCache?.let {
|
||||||
return it.isKotlinBinary
|
return it.isKotlinBinary
|
||||||
}
|
}
|
||||||
return kotlinJvmBinaryClass(file, fileContent, JvmMetadataVersion.INSTANCE) != null
|
return kotlinJvmBinaryClass(file, fileContent, JvmMetadataVersion.INSTANCE, binaryFromCache?.isKotlinBinary) != null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getKotlinBinaryClass(file: VirtualFile, fileContent: ByteArray? = null): KotlinJvmBinaryClass? {
|
fun getKotlinBinaryClass(file: VirtualFile, fileContent: ByteArray? = null): KotlinJvmBinaryClass? {
|
||||||
@@ -54,13 +55,19 @@ class ClsKotlinBinaryClassCache {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
return kotlinJvmBinaryClass(file, fileContent, cached?.headerData?.metadataVersion ?: JvmMetadataVersion.INSTANCE)
|
return kotlinJvmBinaryClass(
|
||||||
|
file,
|
||||||
|
fileContent,
|
||||||
|
cached?.headerData?.metadataVersion ?: JvmMetadataVersion.INSTANCE,
|
||||||
|
cached?.isKotlinBinary
|
||||||
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun kotlinJvmBinaryClass(
|
private fun kotlinJvmBinaryClass(
|
||||||
file: VirtualFile,
|
file: VirtualFile,
|
||||||
fileContent: ByteArray?,
|
fileContent: ByteArray?,
|
||||||
jvmMetadataVersion: JvmMetadataVersion
|
jvmMetadataVersion: JvmMetadataVersion,
|
||||||
|
isKotlinBinary: Boolean?
|
||||||
): KotlinJvmBinaryClass? {
|
): KotlinJvmBinaryClass? {
|
||||||
if (ModelBranch.getFileBranch(file) != null) return null
|
if (ModelBranch.getFileBranch(file) != null) return null
|
||||||
val classFileContent = try {
|
val classFileContent = try {
|
||||||
@@ -75,7 +82,7 @@ class ClsKotlinBinaryClassCache {
|
|||||||
val kotlinBinaryClass = classFileContent?.toKotlinJvmBinaryClass()
|
val kotlinBinaryClass = classFileContent?.toKotlinJvmBinaryClass()
|
||||||
|
|
||||||
val isKotlinBinaryClass = kotlinBinaryClass != null
|
val isKotlinBinaryClass = kotlinBinaryClass != null
|
||||||
if (file is VirtualFileWithId) {
|
if (file is VirtualFileWithId && isKotlinBinaryClass != isKotlinBinary) {
|
||||||
attributeService.writeBooleanAttribute(KOTLIN_IS_COMPILED_FILE_ATTRIBUTE, file, isKotlinBinaryClass)
|
attributeService.writeBooleanAttribute(KOTLIN_IS_COMPILED_FILE_ATTRIBUTE, file, isKotlinBinaryClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -88,7 +95,8 @@ class ClsKotlinBinaryClassCache {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun getKotlinBinaryClassHeaderData(file: VirtualFile, fileContent: ByteArray? = null): KotlinBinaryClassHeaderData? {
|
fun getKotlinBinaryClassHeaderData(file: VirtualFile, fileContent: ByteArray? = null): KotlinBinaryClassHeaderData? {
|
||||||
getKotlinBinaryFromCache(file)?.let { cached ->
|
val kotlinBinaryData = getKotlinBinaryFromCache(file)
|
||||||
|
kotlinBinaryData?.let { cached ->
|
||||||
if (!cached.isKotlinBinary) {
|
if (!cached.isKotlinBinary) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
@@ -97,7 +105,8 @@ class ClsKotlinBinaryClassCache {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
val kotlinBinaryClass = kotlinJvmBinaryClass(file, fileContent, JvmMetadataVersion.INSTANCE) ?: return null
|
val kotlinBinaryClass =
|
||||||
|
kotlinJvmBinaryClass(file, fileContent, JvmMetadataVersion.INSTANCE, kotlinBinaryData?.isKotlinBinary) ?: return null
|
||||||
return createHeaderInfo(kotlinBinaryClass)
|
return createHeaderInfo(kotlinBinaryClass)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user