RFR: 8305321: Remove unused exports in java.desktop [v3]
Alexey Ivanov
aivanov at openjdk.org
Thu Oct 12 10:03:20 UTC 2023
On Wed, 11 Oct 2023 17:48:28 GMT, Daniel Jeliński <djelinski at openjdk.org> wrote:
>> src/java.desktop/share/native/libawt/java2d/SurfaceData.h line 557:
>>
>>> 555: */
>>> 556: SurfaceDataOps *
>>> 557: SurfaceData_GetOpsNoSetup(JNIEnv *env, jobject sData);
>>
>> ~~It seems to me none of the functions in `SurfaceData.h` should be exported. They all end up in `awt.dll` / `libawt.so`. I can't see any of these functions are accessed from other DLLs.~~
>>
>> ~~Would you like to create a separate task for removing exports from `SurfaceData` functions?~~
>>
>> Some are used from `fontmanager.dll`. But not as many as we export.
>>
>> Potentially all symbols exported from `awt.dll` except from `Java*` can be hidden…
>> I found that `Disposer_AddRecord` and `J2dTraceImpl` are used from `lcms.dll`.
>
> Keep in mind that on Linux libawt is split into libawt, libawt_headless and libawt_xawt, and the export/import dependencies are different.
I totally understand this. However, Windows specific symbols:
9 8 000380A0 GDIWinSD_InitDC
10 9 000385F0 GDIWindowSurfaceData_GetComp
11 A 000386C0 GDIWindowSurfaceData_GetOps
12 B 000386D0 GDIWindowSurfaceData_GetOpsNoSetup
13 C 000386E0 GDIWindowSurfaceData_GetWindow
and others are still exported from `awt.dll`, I believe these can be made private.
Yet I agree we need to be careful not to hide something that's used from other libraries.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/13261#discussion_r1356588203
More information about the client-libs-dev
mailing list