From acbdd7f8ae7bde4063924aa5221cba5bd83eaca5 Mon Sep 17 00:00:00 2001 From: Svyatoslav Scherbina Date: Wed, 23 Dec 2020 11:20:35 +0300 Subject: [PATCH] Improve discoverability of KT-42254 in case of runtime assertion --- kotlin-native/runtime/src/objc/cpp/ObjCExportClasses.mm | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/kotlin-native/runtime/src/objc/cpp/ObjCExportClasses.mm b/kotlin-native/runtime/src/objc/cpp/ObjCExportClasses.mm index 911008d2596..655cc9eca0b 100644 --- a/kotlin-native/runtime/src/objc/cpp/ObjCExportClasses.mm +++ b/kotlin-native/runtime/src/objc/cpp/ObjCExportClasses.mm @@ -232,10 +232,13 @@ OBJ_GETTER(Kotlin_boxDouble, KDouble value); @end; static void injectToRuntime() { - RuntimeCheck(Kotlin_ObjCExport_toKotlinSelector == nullptr, "runtime injected twice"); + // If the code below fails, then it is most likely caused by KT-42254. + const char* errorMessage = "runtime injected twice; https://youtrack.jetbrains.com/issue/KT-42254 might be related"; + + RuntimeCheck(Kotlin_ObjCExport_toKotlinSelector == nullptr, errorMessage); Kotlin_ObjCExport_toKotlinSelector = @selector(toKotlin:); - RuntimeCheck(Kotlin_ObjCExport_releaseAsAssociatedObjectSelector == nullptr, "runtime injected twice"); + RuntimeCheck(Kotlin_ObjCExport_releaseAsAssociatedObjectSelector == nullptr, errorMessage); Kotlin_ObjCExport_releaseAsAssociatedObjectSelector = @selector(releaseAsAssociatedObject); }