Community
Participate
Working Groups
Except for locals with different names, the two branches of this if statement are identical: if (fieldOrMethod instanceof MethodBinding) { SyntheticMethodBinding[] methodAccessors = (SyntheticMethodBinding[]) this.synthetics[SourceTypeBinding.METHOD_EMUL].get(fieldOrMethod); int numberOfAccessors = 0; if (methodAccessors[0] != null) numberOfAccessors++; if (methodAccessors[1] != null) numberOfAccessors++; if (index + numberOfAccessors > bindings.length) System.arraycopy(bindings, 0, (bindings = new SyntheticMethodBinding[index + numberOfAccessors]), 0, index); if (methodAccessors[0] != null) bindings[index++] = methodAccessors[0]; // super access if (methodAccessors[1] != null) bindings[index++] = methodAccessors[1]; // normal access or bridge } else { SyntheticMethodBinding[] fieldAccessors = (SyntheticMethodBinding[]) this.synthetics[SourceTypeBinding.METHOD_EMUL].get(fieldOrMethod); int numberOfAccessors = 0; if (fieldAccessors[0] != null) numberOfAccessors++; if (fieldAccessors[1] != null) numberOfAccessors++; if (index + numberOfAccessors > bindings.length) System.arraycopy(bindings, 0, (bindings = new SyntheticMethodBinding[index + numberOfAccessors]), 0, index); if (fieldAccessors[0] != null) bindings[index++] = fieldAccessors[0]; // read access if (fieldAccessors[1] != null) bindings[index++] = fieldAccessors[1]; // write access }
Created attachment 114162 [details] Proposed patch
Indeed, this was redundant. Released for 3.5M3. Fixed
Verified for 3.5M3 using I20081026-2000 build.