diff --git a/core/reflection.jvm/src/kotlin/reflect/jvm/reflectLambda.kt b/core/reflection.jvm/src/kotlin/reflect/jvm/reflectLambda.kt index 19337fd0500..7b3d9cc21f0 100644 --- a/core/reflection.jvm/src/kotlin/reflect/jvm/reflectLambda.kt +++ b/core/reflection.jvm/src/kotlin/reflect/jvm/reflectLambda.kt @@ -39,10 +39,10 @@ import kotlin.reflect.jvm.internal.getOrCreateModule */ fun Function.reflect(): KFunction? { val annotation = javaClass.getAnnotation(Metadata::class.java) ?: return null - val input = BitEncoding.decodeBytes(annotation.d1).inputStream() - val nameResolver = JvmNameResolver( - JvmProtoBuf.StringTableTypes.parseDelimitedFrom(input, JvmProtoBufUtil.EXTENSION_REGISTRY), annotation.d2 - ) + val data = annotation.d1.takeUnless(Array::isEmpty) ?: return null + val input = BitEncoding.decodeBytes(data).inputStream() + val stringTableTypes = JvmProtoBuf.StringTableTypes.parseDelimitedFrom(input, JvmProtoBufUtil.EXTENSION_REGISTRY) + val nameResolver = JvmNameResolver(stringTableTypes, annotation.d2) val proto = ProtoBuf.Function.parseFrom(input, JvmProtoBufUtil.EXTENSION_REGISTRY) val moduleData = javaClass.getOrCreateModule() val context = DeserializationContext(