From aa53d92fbee39f23323dab3979f8ef2907b46de5 Mon Sep 17 00:00:00 2001 From: Him188 Date: Tue, 21 Dec 2021 22:22:15 +0000 Subject: [PATCH] Fix Desensitizer for NestedStructure --- .../desensitizer/Desensitizer.kt | 25 +++++++++++-------- 1 file changed, 15 insertions(+), 10 deletions(-) diff --git a/mirai-core/src/commonTest/kotlin/testFramework/desensitizer/Desensitizer.kt b/mirai-core/src/commonTest/kotlin/testFramework/desensitizer/Desensitizer.kt index 938768e40..0c0a166c8 100644 --- a/mirai-core/src/commonTest/kotlin/testFramework/desensitizer/Desensitizer.kt +++ b/mirai-core/src/commonTest/kotlin/testFramework/desensitizer/Desensitizer.kt @@ -216,17 +216,22 @@ private class DesensitizationVisitor( val result = instance.cast>() .deserialize(desc.origin as ProtocolStruct, value.origin as ByteArray) - ?: desc.origin + ?.let { ValueDescAnalyzer.analyze(it) } - val generate = ValueDescAnalyzer.analyze(result) - .transform(OptimizeByteArrayAsHexStringTransformer()) - .transform(DesensitizationVisitor(desensitizer)) - .renderToString() - PlainValueDesc( - desc, - "$generate.toByteArray(${result::class.qualifiedName}.serializer())", - value.origin - ) + if (result == null) { + value + } else { + val generate = ValueDescAnalyzer.analyze(result) + .transform(OptimizeByteArrayAsHexStringTransformer()) + .transform(DesensitizationVisitor(desensitizer)) + .renderToString() + + PlainValueDesc( + desc, + "$generate.toByteArray(${result::class.qualifiedName}.serializer())", + value.origin + ) + } } else value } }).let {