Append in a more safe way

This commit is contained in:
Alexey Tsvetkov
2015-12-21 16:40:20 +03:00
parent f137910e63
commit 756c78bfcc
4 changed files with 15 additions and 10 deletions
@@ -21,7 +21,6 @@ import com.intellij.openapi.util.io.FileUtil
import com.intellij.openapi.util.io.FileUtil.toSystemIndependentName
import com.intellij.util.io.BooleanDataDescriptor
import com.intellij.util.io.EnumeratorStringDescriptor
import com.intellij.util.io.IOUtil
import gnu.trove.THashSet
import org.jetbrains.annotations.TestOnly
import org.jetbrains.jps.builders.storage.BuildDataPaths
@@ -581,7 +580,7 @@ class IncrementalCacheImpl(
}
fun add(sourceFile: File, className: JvmClassName) {
storage.append(sourceFile.absolutePath, { out -> IOUtil.writeUTF(out, className.internalName) })
storage.append(sourceFile.absolutePath, className.internalName)
}
operator fun get(sourceFile: File): Collection<JvmClassName> =
@@ -684,9 +683,7 @@ class IncrementalCacheImpl(
private inner class InlineFunctionsFilesMap(storageFile: File) : BasicMap<PathFunctionPair, Collection<String>>(storageFile, PathFunctionPairKeyDescriptor, PathCollectionExternalizer) {
fun add(sourcePath: String, jvmSignature: String, targetPath: String) {
val key = PathFunctionPair(sourcePath, jvmSignature)
storage.append(key) { out ->
IOUtil.writeUTF(out, targetPath)
}
storage.append(key, targetPath)
}
operator fun get(sourcePath: String, jvmSignature: String): Collection<String> {
@@ -16,7 +16,6 @@
package org.jetbrains.kotlin.jps.incremental.storage
import com.intellij.util.io.IOUtil
import org.jetbrains.kotlin.jps.incremental.dumpCollection
import org.jetbrains.kotlin.name.FqName
import java.io.File
@@ -27,7 +26,7 @@ internal open class ClassOneToManyMap(
override fun dumpValue(value: Collection<String>): String = value.dumpCollection()
fun add(key: FqName, value: FqName) {
storage.append(key.asString()) { out -> IOUtil.writeUTF(out, value.asString()) }
storage.append(key.asString(), value.asString())
}
operator fun get(key: FqName): Collection<FqName> =
@@ -17,6 +17,7 @@
package org.jetbrains.kotlin.jps.incremental.storage
import com.intellij.util.io.DataExternalizer
import com.intellij.util.io.IOUtil
import com.intellij.util.io.KeyDescriptor
import com.intellij.util.io.PersistentHashMap
import java.io.DataOutput
@@ -73,8 +74,12 @@ internal class LazyStorage<K, V>(
getStorageIfExists()?.remove(key)
}
fun append(key: K, append: (DataOutput)->Unit) {
getStorageOrCreateNew().appendData(key, append)
fun append(key: K, value: String) {
append(key) { out -> IOUtil.writeUTF(out, value) }
}
fun append(key: K, value: Int) {
append(key) { out -> out.writeInt(value) }
}
@Synchronized
@@ -110,4 +115,8 @@ internal class LazyStorage<K, V>(
private fun createMap(): PersistentHashMap<K, V> =
PersistentHashMap(storageFile, keyDescriptor, valueExternalizer)
private fun append(key: K, append: (DataOutput)->Unit) {
getStorageOrCreateNew().appendData(key, append)
}
}
@@ -24,7 +24,7 @@ internal class LookupMap(storage: File) : BasicMap<LookupSymbolKey, Collection<I
override fun dumpValue(value: Collection<Int>): String = value.toString()
fun add(name: String, scope: String, fileId: Int) {
storage.append(LookupSymbolKey(name, scope)) { out -> out.writeInt(fileId) }
storage.append(LookupSymbolKey(name, scope), fileId)
}
operator fun get(key: LookupSymbolKey): Collection<Int>? = storage[key]