View | Details | Raw Unified | Return to bug 293861 | Differences between
and this patch

Collapse All | Expand All

(-)compiler/org/eclipse/jdt/internal/compiler/lookup/BinaryTypeBinding.java (+21 lines)
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,

Return to bug 293861