Remove StringTable.serializeTo, add JvmProtoBufUtil.writeData
StringTable.serializeTo was effectively only used for JvmStringTable, but was declared in StringTable because of the usage in DescriptorSerializer.serialize (which, in turn, was only used from JVM codegen)
This commit is contained in:
+13
@@ -8,8 +8,11 @@ package org.jetbrains.kotlin.metadata.jvm.deserialization
|
||||
import org.jetbrains.kotlin.metadata.ProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.deserialization.*
|
||||
import org.jetbrains.kotlin.metadata.jvm.JvmProtoBuf
|
||||
import org.jetbrains.kotlin.metadata.jvm.serialization.JvmStringTable
|
||||
import org.jetbrains.kotlin.protobuf.ExtensionRegistryLite
|
||||
import org.jetbrains.kotlin.protobuf.MessageLite
|
||||
import java.io.ByteArrayInputStream
|
||||
import java.io.ByteArrayOutputStream
|
||||
import java.io.InputStream
|
||||
|
||||
object JvmProtoBufUtil {
|
||||
@@ -46,6 +49,16 @@ object JvmProtoBufUtil {
|
||||
private fun InputStream.readNameResolver(strings: Array<String>): JvmNameResolver =
|
||||
JvmNameResolver(JvmProtoBuf.StringTableTypes.parseDelimitedFrom(this, EXTENSION_REGISTRY), strings)
|
||||
|
||||
/**
|
||||
* Serializes [message] and [stringTable] into a string array which must be further written to [Metadata.d1]
|
||||
*/
|
||||
@JvmStatic
|
||||
fun writeData(message: MessageLite, stringTable: JvmStringTable): Array<String> =
|
||||
BitEncoding.encodeBytes(ByteArrayOutputStream().apply {
|
||||
stringTable.serializeTo(this)
|
||||
message.writeTo(this)
|
||||
}.toByteArray())
|
||||
|
||||
// returns JVM signature in the format: "equals(Ljava/lang/Object;)Z"
|
||||
fun getJvmMethodSignature(
|
||||
proto: ProtoBuf.Function,
|
||||
|
||||
+1
-1
@@ -94,7 +94,7 @@ open class JvmStringTable(nameResolver: JvmNameResolver? = null) : StringTable {
|
||||
return index
|
||||
}
|
||||
|
||||
override fun serializeTo(output: OutputStream) {
|
||||
fun serializeTo(output: OutputStream) {
|
||||
with(JvmProtoBuf.StringTableTypes.newBuilder()) {
|
||||
addAllRecord(records.map { it.build() })
|
||||
addAllLocalName(localNames)
|
||||
|
||||
Reference in New Issue
Block a user