in hot-reload-agent/src/main/kotlin/org/jetbrains/compose/reload/agent/compose.kt [37:59]
override fun transform(
loader: ClassLoader?, className: String?,
classBeingRedefined: Class<*>?, protectionDomain: ProtectionDomain?, classfileBuffer: ByteArray?
): ByteArray? {
val classId = ClassId(className ?: return null)
if (!classId.isTransformAllowed()) return null
if (classId != Ids.Recomposer.classId &&
classId != Ids.Composer.classId
) return null
composeClassLoadersLock.withLock {
val loader = loader ?: ClassLoader.getSystemClassLoader()
if (composeClassLoaders.put(loader, Unit) == null) {
/* put returning null -> loader was not known before, so we can setup copose */
runOnUiThreadAsync {
enableComposeHotReloadMode(loader)
}
}
}
return null
}