RFR: 8355369: Remove setAccessible usage for setting final fields in java.util.concurrent
Viktor Klang
vklang at openjdk.org
Wed Apr 23 12:23:55 UTC 2025
On Wed, 23 Apr 2025 10:44:05 GMT, Per Minborg <pminborg at openjdk.org> wrote:
>> This Pull Request replaces the uses of Field + setAccessible to modify final fields in java.util.concurrent with Unsafe.
>
> src/java.base/share/classes/java/util/concurrent/ConcurrentSkipListSet.java line 534:
>
>> 532: U.putReference(
>> 533: this,
>> 534: U.objectFieldOffset(ConcurrentSkipListSet.class, "m"),
>
> Would it make sense to compute the offset once and for all and put it in a `static final long` field?
Yeah, I originally did that, but the following patch is the "smallest change".
Given that the "original code" obtained the Field instance each call, this is still likely a performance improvement.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24821#discussion_r2055927582
More information about the core-libs-dev
mailing list