IR: use HashMap instead of LinkedHashMap in SymbolTable
It's not important for these maps to be linked hash maps because they are not iterated over.
This commit is contained in:
@@ -219,8 +219,8 @@ open class SymbolTable(
|
|||||||
|
|
||||||
private open inner class FlatSymbolTable<D : DeclarationDescriptor, B : IrSymbolOwner, S : IrBindableSymbol<D, B>> :
|
private open inner class FlatSymbolTable<D : DeclarationDescriptor, B : IrSymbolOwner, S : IrBindableSymbol<D, B>> :
|
||||||
SymbolTableBase<D, B, S>(lock) {
|
SymbolTableBase<D, B, S>(lock) {
|
||||||
val descriptorToSymbol = linkedMapOf<D, S>()
|
val descriptorToSymbol = hashMapOf<D, S>()
|
||||||
val idSigToSymbol = linkedMapOf<IdSignature, S>()
|
val idSigToSymbol = hashMapOf<IdSignature, S>()
|
||||||
|
|
||||||
protected open fun signature(descriptor: D): IdSignature? = signaturer.composeSignature(descriptor)
|
protected open fun signature(descriptor: D): IdSignature? = signaturer.composeSignature(descriptor)
|
||||||
|
|
||||||
@@ -261,8 +261,8 @@ open class SymbolTable(
|
|||||||
private inner class ScopedSymbolTable<D : DeclarationDescriptor, B : IrSymbolOwner, S : IrBindableSymbol<D, B>>
|
private inner class ScopedSymbolTable<D : DeclarationDescriptor, B : IrSymbolOwner, S : IrBindableSymbol<D, B>>
|
||||||
: SymbolTableBase<D, B, S>(lock) {
|
: SymbolTableBase<D, B, S>(lock) {
|
||||||
inner class Scope(val owner: IrSymbol, val parent: Scope?) {
|
inner class Scope(val owner: IrSymbol, val parent: Scope?) {
|
||||||
private val descriptorToSymbol = linkedMapOf<D, S>()
|
private val descriptorToSymbol = hashMapOf<D, S>()
|
||||||
private val idSigToSymbol = linkedMapOf<IdSignature, S>()
|
private val idSigToSymbol = hashMapOf<IdSignature, S>()
|
||||||
|
|
||||||
private fun getByDescriptor(d: D): S? {
|
private fun getByDescriptor(d: D): S? {
|
||||||
return descriptorToSymbol[d] ?: parent?.getByDescriptor(d)
|
return descriptorToSymbol[d] ?: parent?.getByDescriptor(d)
|
||||||
|
|||||||
Reference in New Issue
Block a user