On Wed, 5 Jul 2023 16:39:58 GMT, Pavel Rappo <pra...@openjdk.org> wrote:
>> src/java.base/share/classes/java/text/CompactNumberFormat.java line 2364: >> >>> 2362: return true; >>> 2363: } >>> 2364: >> >> Moving this before the `super.equals` call performance-wise would favor the >> equals case. (statistics not available guess) >> >> The code style in these files favors `if (this == obj)`... over the swapped >> order of arguments. > > You are right, I have no stats. Performance-wise, it's already better than > what was there before. Before, there was no short-circuit check. But I can go > either way; I don't have a strong opinion. > > Reusing superclass' equals is not often seen these days (and that code is > old), so some amount of overlap is expected. Regardless of whether we > rearrange that check or not, if the passed object is not `this`, we end up > checking `this == obj` twice: once in super.equals, the other time in here. True, there's no simple way to avoid the double check in either the equal or not equal case. And I don't know enough about the Hotspot compiler to know whether it would spot the duplication and optimize it. In many `equals` methods, the test for self equality is frequently the first line. Is fine as is. ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/14752#discussion_r1253438509