Lines 217-222
Link Here
|
217 |
if ((this.tagBits & TagBits.AreMethodsComplete) != 0) |
217 |
if ((this.tagBits & TagBits.AreMethodsComplete) != 0) |
218 |
return this.methods; |
218 |
return this.methods; |
219 |
|
219 |
|
|
|
220 |
removeUnresolvedMethods(); |
220 |
// lazily sort methods |
221 |
// lazily sort methods |
221 |
if ((this.tagBits & TagBits.AreMethodsSorted) == 0) { |
222 |
if ((this.tagBits & TagBits.AreMethodsSorted) == 0) { |
222 |
int length = this.methods.length; |
223 |
int length = this.methods.length; |
Lines 239-244
Link Here
|
239 |
return availableMethods; |
240 |
return availableMethods; |
240 |
} |
241 |
} |
241 |
|
242 |
|
|
|
243 |
private void removeUnresolvedMethods() { |
244 |
int methodsLength = methods.length; |
245 |
for (int i = 0; i < methods.length; i++) { |
246 |
MethodBinding method = methods[i]; |
247 |
if (method == null) { |
248 |
methodsLength--; |
249 |
} |
250 |
} |
251 |
if (methodsLength != methods.length) { |
252 |
MethodBinding[] newMethods = new MethodBinding[methodsLength]; |
253 |
int n = 0; |
254 |
for (int i = 0; i < methods.length; i++) { |
255 |
if (methods[i] != null) { |
256 |
newMethods[n++] = methods[i]; |
257 |
} |
258 |
} |
259 |
methods = newMethods; |
260 |
} |
261 |
} |
262 |
|
242 |
void cachePartsFrom(IBinaryType binaryType, boolean needFieldsAndMethods) { |
263 |
void cachePartsFrom(IBinaryType binaryType, boolean needFieldsAndMethods) { |
243 |
try { |
264 |
try { |
244 |
// default initialization for super-interfaces early, in case some aborting compilation error occurs, |
265 |
// default initialization for super-interfaces early, in case some aborting compilation error occurs, |