On Mon, 15 Mar 2021 09:35:27 GMT, Rémi Forax 
<github.com+828220+fo...@openjdk.org> wrote:

>> Patrick Concannon has updated the pull request incrementally with one 
>> additional commit since the last revision:
>> 
>>   8263358: Refactored missed equals method
>
> src/java.base/share/classes/java/lang/StackTraceElement.java line 413:
> 
>> 411:                 && Objects.equals(moduleName, e.moduleName)
>> 412:                 && Objects.equals(moduleVersion, e.moduleVersion)
>> 413:                 && e.declaringClass.equals(declaringClass)
> 
> testing the declaring class and the line number should be done first given 
> they are primitive values, it will be a little more efficient if two 
> StackTraceElement are not equals and one is using non interned String.
>   return (obj instanceof StackTraceElement e)
>      && e.lineNumber == lineNumber
>      && e.declaringClass == declaringClass
>      && ...

Hi Rémi,
There seems to be a deeper issue here - Patrick pointed that out to me - the 
specification of equals above speaks of comparing class names where the actual 
implementation compares classes. Maybe the specification should be updated - 
but that would be better done in a separate issue with CSR etc... Maybe we can 
do the optimization you suggest at the same time?

-------------

PR: https://git.openjdk.java.net/jdk/pull/2913

Reply via email to