Avoid wasted memory on empty maps and sets
This commit avoids wasted memory on empty hash maps in MergedAnnotationReadingVisitor and empty sets in InjectionMetadata. Closes gh-29742
This commit is contained in:
committed by
Sam Brannen
parent
fd3e99c7ee
commit
3738a45658
@@ -107,15 +107,20 @@ public class InjectionMetadata {
|
||||
}
|
||||
|
||||
public void checkConfigMembers(RootBeanDefinition beanDefinition) {
|
||||
Set<InjectedElement> checkedElements = new LinkedHashSet<>(this.injectedElements.size());
|
||||
for (InjectedElement element : this.injectedElements) {
|
||||
Member member = element.getMember();
|
||||
if (!beanDefinition.isExternallyManagedConfigMember(member)) {
|
||||
beanDefinition.registerExternallyManagedConfigMember(member);
|
||||
checkedElements.add(element);
|
||||
}
|
||||
if (this.injectedElements.isEmpty()) {
|
||||
this.checkedElements = Collections.emptySet();
|
||||
}
|
||||
else {
|
||||
Set<InjectedElement> checkedElements = new LinkedHashSet<>(this.injectedElements.size()*4/3 + 1);
|
||||
for (InjectedElement element : this.injectedElements) {
|
||||
Member member = element.getMember();
|
||||
if (!beanDefinition.isExternallyManagedConfigMember(member)) {
|
||||
beanDefinition.registerExternallyManagedConfigMember(member);
|
||||
checkedElements.add(element);
|
||||
}
|
||||
}
|
||||
this.checkedElements = checkedElements;
|
||||
}
|
||||
this.checkedElements = checkedElements;
|
||||
}
|
||||
|
||||
public void inject(Object target, @Nullable String beanName, @Nullable PropertyValues pvs) throws Throwable {
|
||||
|
||||
Reference in New Issue
Block a user