Просмотр исходного кода

Optimize `processForwardMessage`

Him188 4 лет назад
Родитель
Сommit
7251d87621
1 измененных файлов с 3 добавлено и 6 удалено
  1. 3 6
      mirai-core/src/commonMain/kotlin/contact/SendMessageHandler.kt

+ 3 - 6
mirai-core/src/commonMain/kotlin/contact/SendMessageHandler.kt

@@ -314,12 +314,9 @@ internal suspend fun <C : Contact> SendMessageHandler<C>.transformSpecialMessage
                     "ForwardMessage allows up to 200 nodes, but found ${forward.nodeList.size}"
                 )
             }
-            val tmp = ArrayList<SingleMessage>(
-                forward.nodeList.sumOf { it.messageChain.size }
-            )
-            forward.nodeList.forEach { tmp.addAll(it.messageChain) }
-
-            tmp.verifyLength(forward, contact)
+            sequence {
+                forward.nodeList.forEach { yieldAll(it.messageChain) }
+            }.asIterable().verifyLength(forward, contact)
         }
 
         val resId = getMiraiImpl().uploadMessageHighway(