[LL] spare some memory on lists

By default, a list with a single element would have capacity of 10;
in big numbers, it might be a lot of wasted memory.
This commit is contained in:
Anna Kozlova
2023-06-16 13:33:14 +02:00
committed by Space Team
parent 0afe712f07
commit 583aad2350
@@ -140,19 +140,21 @@ internal open class JvmStubBasedFirDeserializedSymbolProvider(
foundFunctions: Collection<KtNamedFunction>?,
): List<FirNamedFunctionSymbol> {
val topLevelFunctions = foundFunctions ?: declarationProvider.getTopLevelFunctions(callableId)
return topLevelFunctions
.mapNotNull { function ->
val result = ArrayList<FirNamedFunctionSymbol>(topLevelFunctions.size)
topLevelFunctions
.mapNotNullTo(result) { function ->
val file = function.containingKtFile
val virtualFile = file.virtualFile
if (virtualFile.extension == MetadataPackageFragment.METADATA_FILE_EXTENSION) return@mapNotNull null
if (virtualFile.extension == MetadataPackageFragment.METADATA_FILE_EXTENSION) return@mapNotNullTo null
if (initialOrigin != FirDeclarationOrigin.BuiltIns && file.packageFqName.asString()
.replace(".", "/") + "/" + virtualFile.nameWithoutExtension in KotlinBuiltins
) return@mapNotNull null
) return@mapNotNullTo null
val symbol = FirNamedFunctionSymbol(callableId)
val rootContext =
StubBasedFirDeserializationContext.createRootContext(session, moduleData, callableId, function, symbol, initialOrigin)
rootContext.memberDeserializer.loadFunction(function, null, session, symbol).symbol
}
return result
}
private fun loadPropertiesByCallableId(callableId: CallableId, foundProperties: Collection<KtProperty>?): List<FirPropertySymbol> {