Android Extensions: do not cache package fragment provider with synthetic properties (KT-10318)
This commit is contained in:
+1
-9
@@ -27,13 +27,10 @@ import org.jetbrains.kotlin.name.Name
|
||||
import org.jetbrains.kotlin.resolve.BindingTrace
|
||||
import org.jetbrains.kotlin.resolve.jvm.extensions.PackageFragmentProviderExtension
|
||||
import org.jetbrains.kotlin.storage.StorageManager
|
||||
import java.util.*
|
||||
|
||||
abstract class AndroidPackageFragmentProviderExtension : PackageFragmentProviderExtension {
|
||||
protected abstract fun getLayoutXmlFileManager(project: Project, moduleInfo: ModuleInfo?): AndroidLayoutXmlFileManager?
|
||||
|
||||
private val cache = WeakHashMap<AndroidModuleData, AndroidSyntheticPackageFragmentProvider>()
|
||||
|
||||
override fun getPackageFragmentProvider(
|
||||
project: Project,
|
||||
module: ModuleDescriptor,
|
||||
@@ -45,9 +42,6 @@ abstract class AndroidPackageFragmentProviderExtension : PackageFragmentProvider
|
||||
|
||||
val moduleData = layoutXmlFileManager.getModuleData()
|
||||
|
||||
val cachedPackageFragmentProvider = cache[moduleData]
|
||||
if (cachedPackageFragmentProvider != null) return cachedPackageFragmentProvider
|
||||
|
||||
val lazyContext = LazySyntheticElementResolveContext(module, storageManager)
|
||||
|
||||
val allPackageDescriptors = arrayListOf<PackageFragmentDescriptor>()
|
||||
@@ -97,9 +91,7 @@ abstract class AndroidPackageFragmentProviderExtension : PackageFragmentProvider
|
||||
allPackageDescriptors += packageDescriptor
|
||||
}
|
||||
|
||||
val provider = AndroidSyntheticPackageFragmentProvider(allPackageDescriptors)
|
||||
cache[moduleData] = provider
|
||||
return provider
|
||||
return AndroidSyntheticPackageFragmentProvider(allPackageDescriptors)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user