RFR: 8210765: Remove finalize method in CStrike.java [v2]
Phil Race
prr at openjdk.org
Fri Aug 1 21:55:53 UTC 2025
On Fri, 1 Aug 2025 03:18:16 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:
>> And if it is 0, what would you do ?
>> Previously 0 meant it hadn't yet been initialized. Now it is always initialized.
>>
>> You'd need to return it anyway even it was zero.
>
> Then I guess whoever is using the `nativeStrikePtr` should account for that it can receive null or 0..
> I haven't seen all cases but one case I saw `getFontMetrics `calls `getFontMetrics(getNativeStrikePtr())`
> and there it does this where it dereference `awtStrikePtr`...Shouldn't it cause SIGSEGV if it ever becomes 0?
>
>
> JNIEXPORT jobject JNICALL
> Java_sun_font_CStrike_getFontMetrics
> (JNIEnv *env, jclass clazz, jlong awtStrikePtr)
> {
> jobject metrics = NULL;
>
> JNI_COCOA_ENTER(env);
> AWT_FONT_CLEANUP_SETUP;
>
> AWTFont *awtfont = ((AWTStrike *)jlong_to_ptr(awtStrikePtr))->fAWTFont;
Nothing is different than before.
We return the result of calling createNativeStrikePtr() both before and after this fix.
So this is a pre-existing issue and one that I am not sure is very likely.
It would require the native alloc for the Objective C object to fail.
And it probably would require all callers to be ready to handle it.
Dealing with that pre-existing theoretical problem is well outside the scope of this.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/26397#discussion_r2248923672
More information about the client-libs-dev
mailing list