Lines 176-188
Link Here
|
176 |
this.packageFragments.put(pkgName, root); |
176 |
this.packageFragments.put(pkgName, root); |
177 |
} else { |
177 |
} else { |
178 |
if (existing instanceof PackageFragmentRoot) { |
178 |
if (existing instanceof PackageFragmentRoot) { |
179 |
this.packageFragments.put(pkgName, new IPackageFragmentRoot[] {(PackageFragmentRoot) existing, root}); |
179 |
if (!existing.equals(root)) |
|
|
180 |
this.packageFragments.put(pkgName, new IPackageFragmentRoot[] {(PackageFragmentRoot) existing, root}); |
180 |
} else { |
181 |
} else { |
181 |
IPackageFragmentRoot[] roots = (IPackageFragmentRoot[]) existing; |
182 |
IPackageFragmentRoot[] roots = (IPackageFragmentRoot[]) existing; |
182 |
int rootLength = roots.length; |
183 |
int rootLength = roots.length; |
183 |
System.arraycopy(roots, 0, roots = new IPackageFragmentRoot[rootLength+1], 0, rootLength); |
184 |
boolean containsRoot = false; |
184 |
roots[rootLength] = root; |
185 |
for (int j = 0; j < rootLength; j++) { |
185 |
this.packageFragments.put(pkgName, roots); |
186 |
if (roots[j].equals(root)) { |
|
|
187 |
containsRoot = true; |
188 |
break; |
189 |
} |
190 |
} |
191 |
if (containsRoot) { |
192 |
System.arraycopy(roots, 0, roots = new IPackageFragmentRoot[rootLength+1], 0, rootLength); |
193 |
roots[rootLength] = root; |
194 |
this.packageFragments.put(pkgName, roots); |
195 |
} |
186 |
} |
196 |
} |
187 |
} |
197 |
} |
188 |
visited.add(root); |
198 |
visited.add(root); |