From e38b2077c00f7d06a5d6765f6fd941d8ba9942ae Mon Sep 17 00:00:00 2001 From: hamidmalek Date: Mon, 30 Jun 2025 12:31:08 +0200 Subject: [PATCH 1/2] fix message log crash. print something instead of return. --- .../src/appleMain/kotlin/logs/LogMessage.kt | 36 ++++++++++++++----- 1 file changed, 28 insertions(+), 8 deletions(-) diff --git a/kable-core/src/appleMain/kotlin/logs/LogMessage.kt b/kable-core/src/appleMain/kotlin/logs/LogMessage.kt index ade9b7073..54ca92251 100644 --- a/kable-core/src/appleMain/kotlin/logs/LogMessage.kt +++ b/kable-core/src/appleMain/kotlin/logs/LogMessage.kt @@ -19,21 +19,41 @@ internal fun LogMessage.detail(error: NSError?) { if (error != null) detail("error", error.toString()) } -internal fun LogMessage.detail(service: CBService) { - detail("service", service.UUID.UUIDString) +internal fun LogMessage.detail(service: CBService? = null) { + detail("service", service?.UUID?.UUIDString ?: "Unknown UUID") } internal fun LogMessage.detail(characteristic: CBCharacteristic) { - detail( - characteristic.service!!.UUID.toUuid(), - characteristic.UUID.toUuid(), - ) + val serviceUuid = characteristic.service + ?.UUID + ?.toUuid() + if (serviceUuid == null) { + detail("service", "Unknown") + return + } + + detail(serviceUuid, characteristic.UUID.toUuid()) } internal fun LogMessage.detail(descriptor: CBDescriptor) { + val characteristic = descriptor.characteristic + if (characteristic == null) { + detail("characteristic", "Unknown") + return + } + + val serviceUuid = characteristic.service + ?.UUID + ?.toUuid() + + if (serviceUuid == null) { + detail("service", "Unknown") + return + } + detail( - descriptor.characteristic!!.service!!.UUID.toUuid(), - descriptor.characteristic!!.UUID.toUuid(), + serviceUuid, + characteristic.UUID.toUuid(), descriptor.UUID.toUuid(), ) } From 72a2ec53f97119ef8bdd037f9487369d48fbe269 Mon Sep 17 00:00:00 2001 From: HamidMalek Date: Thu, 10 Jul 2025 15:16:59 +0200 Subject: [PATCH 2/2] Update LogMessage.kt --- .../src/appleMain/kotlin/logs/LogMessage.kt | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/kable-core/src/appleMain/kotlin/logs/LogMessage.kt b/kable-core/src/appleMain/kotlin/logs/LogMessage.kt index 54ca92251..c54b8e722 100644 --- a/kable-core/src/appleMain/kotlin/logs/LogMessage.kt +++ b/kable-core/src/appleMain/kotlin/logs/LogMessage.kt @@ -19,26 +19,26 @@ internal fun LogMessage.detail(error: NSError?) { if (error != null) detail("error", error.toString()) } -internal fun LogMessage.detail(service: CBService? = null) { - detail("service", service?.UUID?.UUIDString ?: "Unknown UUID") +private fun LogMessage.detail(service: CBService? = null) { + detail("service", service?.UUID?.UUIDString ?: "null UUID") } -internal fun LogMessage.detail(characteristic: CBCharacteristic) { +private fun LogMessage.detail(characteristic: CBCharacteristic) { val serviceUuid = characteristic.service ?.UUID ?.toUuid() if (serviceUuid == null) { - detail("service", "Unknown") + detail("service", "null UUID") return } detail(serviceUuid, characteristic.UUID.toUuid()) } -internal fun LogMessage.detail(descriptor: CBDescriptor) { +private fun LogMessage.detail(descriptor: CBDescriptor) { val characteristic = descriptor.characteristic if (characteristic == null) { - detail("characteristic", "Unknown") + detail("characteristic", "null UUID") return } @@ -47,7 +47,7 @@ internal fun LogMessage.detail(descriptor: CBDescriptor) { ?.toUuid() if (serviceUuid == null) { - detail("service", "Unknown") + detail("service", "null UUID") return } @@ -57,3 +57,12 @@ internal fun LogMessage.detail(descriptor: CBDescriptor) { descriptor.UUID.toUuid(), ) } + +internal fun LogMessage.detail(attribute: CBAttribute) { + when (attribute) { + is CBService -> detail(attribute) + is CBCharacteristic -> detail(attribute) + is CBDescriptor -> detail(attribute) + else -> detail("unknown attribute", attribute.UUID.toUuid()) + } +}