JvmProtoBuf: reuse one instance of ExtensionRegistryLite

This commit is contained in:
Michael Nedzelsky
2015-05-18 18:25:41 +03:00
parent ea8234adb9
commit 6b64dcc4ee
@@ -22,25 +22,19 @@ import org.jetbrains.kotlin.serialization.PackageData
import kotlin.platform.platformStatic import kotlin.platform.platformStatic
public object JvmProtoBufUtil { public object JvmProtoBufUtil {
public val EXTENSION_REGISTRY: ExtensionRegistryLite = run {
public fun getExtensionRegistry(): ExtensionRegistryLite {
val registry = ExtensionRegistryLite.newInstance() val registry = ExtensionRegistryLite.newInstance()
JvmProtoBuf.registerAllExtensions(registry) JvmProtoBuf.registerAllExtensions(registry)
return registry registry
} }
platformStatic platformStatic
public fun readClassDataFrom(encodedData: Array<String>): ClassData { public fun readClassDataFrom(encodedData: Array<String>): ClassData =
return ClassData.read(BitEncoding.decodeBytes(encodedData), getExtensionRegistry()) ClassData.read(BitEncoding.decodeBytes(encodedData), EXTENSION_REGISTRY)
}
platformStatic platformStatic
public fun readPackageDataFrom(encodedData: Array<String>): PackageData { public fun readPackageDataFrom(encodedData: Array<String>): PackageData = readPackageDataFrom(BitEncoding.decodeBytes(encodedData))
return readPackageDataFrom(BitEncoding.decodeBytes(encodedData))
}
platformStatic platformStatic
public fun readPackageDataFrom(data: ByteArray): PackageData { public fun readPackageDataFrom(data: ByteArray): PackageData = PackageData.read(data, EXTENSION_REGISTRY)
return PackageData.read(data, getExtensionRegistry())
}
} }