[LANG-1218] EqualsBuilder.append(Object,Object) is too big to be
inlined, which prevents whole builder to be scalarized. Closes #138.
This commit is contained in:
parent
2b52dedd56
commit
bbd1dc3439
|
@ -22,6 +22,7 @@
|
|||
<body>
|
||||
|
||||
<release version="3.5" date="tba" description="tba">
|
||||
<action issue="LANG-1218" type="update" dev="ggregory" due-to="Ruslan Cheremin">EqualsBuilder.append(Object,Object) is too big to be inlined, which prevents whole builder to be scalarized</action>
|
||||
<action issue="LANG-1205" type="fix" dev="chas" due-to="pbrose">NumberUtils.createNumber() behaves inconsistently with NumberUtils.isNumber()</action>
|
||||
<action issue="LANG-1115" type="add" dev="chas" due-to="Jim Lloyd, Joe Ferner">Add support for varargs in ConstructorUtils, MemberUtils, and MethodUtils</action>
|
||||
<action issue="LANG-1134" type="add" dev="chas" due-to="Alan Smithee">New methods for lang3.Validate</action>
|
||||
|
|
|
@ -479,7 +479,22 @@ public class EqualsBuilder implements Builder<Boolean> {
|
|||
if (!lhsClass.isArray()) {
|
||||
// The simple case, not an array, just test the element
|
||||
isEquals = lhs.equals(rhs);
|
||||
} else if (lhs.getClass() != rhs.getClass()) {
|
||||
} else {
|
||||
// factor out array case in order to keep method small enough
|
||||
// to be inlined
|
||||
appendArray(lhs, rhs);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
* <p>Test if an <code>Object</code> is equal to an array.</p>
|
||||
*
|
||||
* @param lhs the left hand object, an array
|
||||
* @param rhs the right hand object
|
||||
*/
|
||||
private void appendArray(final Object lhs, final Object rhs) {
|
||||
if (lhs.getClass() != rhs.getClass()) {
|
||||
// Here when we compare different dimensions, for example: a boolean[][] to a boolean[]
|
||||
this.setEquals(false);
|
||||
}
|
||||
|
@ -505,7 +520,6 @@ public class EqualsBuilder implements Builder<Boolean> {
|
|||
// Not an array of primitives
|
||||
append((Object[]) lhs, (Object[]) rhs);
|
||||
}
|
||||
return this;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
Loading…
Reference in New Issue