Extract FreezeHooks and make them testable (#4654)

This commit is contained in:
Alexander Shabalin
2021-01-29 10:51:13 +03:00
committed by Vasily Levchenko
parent e2280ce855
commit d84c83d7da
13 changed files with 189 additions and 9 deletions
@@ -31,4 +31,5 @@ object KonanFqNames {
val typedIntrinsic = FqName("kotlin.native.internal.TypedIntrinsic")
val objCMethod = FqName("kotlinx.cinterop.ObjCMethod")
val hasFinalizer = FqName("kotlin.native.internal.HasFinalizer")
val hasFreezeHook = FqName("kotlin.native.internal.HasFreezeHook")
}
@@ -75,6 +75,10 @@ internal class RTTIGenerator(override val context: Context) : ContextUtils {
result = result or TF_HAS_FINALIZER
}
if (irClass.hasAnnotation(KonanFqNames.hasFreezeHook)) {
result = result or TF_HAS_FREEZE_HOOK
}
return result
}
@@ -638,4 +642,5 @@ private const val TF_OBJC_DYNAMIC = 8
private const val TF_LEAK_DETECTOR_CANDIDATE = 16
private const val TF_SUSPEND_FUNCTION = 32
private const val TF_HAS_FINALIZER = 64
private const val TF_HAS_FREEZE_HOOK = 128