mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
Better storage clean-up on class removal yet yet again (compile-server).
This commit is contained in:
@@ -1675,22 +1675,12 @@ public class Mappings {
|
||||
}
|
||||
}
|
||||
|
||||
private void cleanupRemovedClass(final int className, ClassRepr cr, Collection<UsageRepr.Cluster> clusters) {
|
||||
if (cr == null) {
|
||||
cr = new Util().reprByName(className);
|
||||
}
|
||||
|
||||
if (cr != null) {
|
||||
for (final int superSomething : cr.getSupers()) {
|
||||
myClassToSubclasses.removeFrom(superSomething, cr.name);
|
||||
}
|
||||
|
||||
private void cleanupBackDependency(final int className, Collection<UsageRepr.Cluster> clusters) {
|
||||
if (clusters == null) {
|
||||
final int sourceFile = myClassToSourceFile.get(className);
|
||||
|
||||
if (sourceFile > 0) {
|
||||
if (clusters == null) {
|
||||
clusters = mySourceFileToUsages.get(sourceFile);
|
||||
}
|
||||
clusters = mySourceFileToUsages.get(sourceFile);
|
||||
|
||||
if (clusters != null) {
|
||||
for (final UsageRepr.Cluster cluster : clusters) {
|
||||
@@ -1700,8 +1690,8 @@ public class Mappings {
|
||||
if (u instanceof UsageRepr.ClassUsage) {
|
||||
final TIntHashSet residents = cluster.getResidence(u);
|
||||
|
||||
if (residents != null && residents.contains(cr.name)) {
|
||||
myClassToClassDependency.removeFrom(((UsageRepr.ClassUsage)u).className, cr.name);
|
||||
if (residents != null && residents.contains(className)) {
|
||||
myClassToClassDependency.removeFrom(((UsageRepr.ClassUsage)u).className, className);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1710,6 +1700,20 @@ public class Mappings {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void cleanupRemovedClass(final int className, ClassRepr cr, Collection<UsageRepr.Cluster> clusters) {
|
||||
if (cr == null) {
|
||||
cr = new Util().reprByName(className);
|
||||
}
|
||||
|
||||
if (cr != null) {
|
||||
for (final int superSomething : cr.getSupers()) {
|
||||
myClassToSubclasses.removeFrom(superSomething, cr.name);
|
||||
}
|
||||
}
|
||||
|
||||
cleanupBackDependency(className, clusters);
|
||||
|
||||
myClassToClassDependency.remove(className);
|
||||
myClassToSubclasses.remove(className);
|
||||
@@ -1766,6 +1770,9 @@ public class Mappings {
|
||||
else {
|
||||
myClassToSourceFile.remove(c);
|
||||
}
|
||||
|
||||
cleanupBackDependency(c, null);
|
||||
|
||||
return true;
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user