RFR: 8210765: Remove finalize method in CStrike.java [v2]
Prasanta Sadhukhan
psadhukhan at openjdk.org
Thu Jul 31 04:14:53 UTC 2025
On Mon, 21 Jul 2025 16:52:54 GMT, Phil Race <prr at openjdk.org> wrote:
>> Remove finalize method from CStrike.java
>>
>> This one is a bit odd in that there's already a Disposer used - and in fact it involves two classes
>> CStrikeDisposer.java and its subclass - the nested class CStrike.GlyphInfoCache
>> CStrike.GlyphInfoCache is tracking all the glyph image references.
>>
>> CStrikeDisposer has the full set of constructors of its superclass - FontStrikeDisposer including support
>> for the native context
>>
>> And if supplied, CStrikeDisposer will call the native method freeNativeScalerContext(long) to free the native context
>> but that native method does not exist !
>> And there's no CStrike.GlyphInfoCache constructor which allows it to be specified
>>
>> So the fix is to add that and call the disposeNativeStrikePtr method instead.
>>
>> I also rejigged things a little so nativeStrikePtr could be final which is supposed to help with the thread visibility.
>
> Phil Race has updated the pull request incrementally with one additional commit since the last revision:
>
> 8210765
Guess wildcard import and copyright year fix can be done..
src/java.desktop/macosx/classes/sun/font/CStrike.java line 99:
> 97:
> 98: public long getNativeStrikePtr() {
> 99: return nativeStrikePtr;
Any reason this check was removed?
I see that initNativeStrikePtr will call createNativeStrikePtr which does this where there is no null check and it just returns what it gets so shouldn't we check it here?
awtStrike = [AWTStrike awtStrikeForFont:awtFont tx:glyphTx invDevTx:invDevTx style:style aaStyle:aaStyle]; // autoreleased
if (awtStrike)
{
CFRetain(awtStrike); // GC
}
JNI_COCOA_EXIT(env);
return ptr_to_jlong(awtStrike);
-------------
PR Review: https://git.openjdk.org/jdk/pull/26397#pullrequestreview-3073923632
PR Review Comment: https://git.openjdk.org/jdk/pull/26397#discussion_r2244303469
More information about the client-libs-dev
mailing list