override fun transform()

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
    }