RFR: 8307145: windowsaccessbridge.dll is missing 4 critical methods in its C API
Julian Waters
jwaters at openjdk.org
Thu May 4 07:08:14 UTC 2023
On Sat, 29 Apr 2023 19:26:00 GMT, Julian Waters <jwaters at openjdk.org> wrote:
> In windowsaccessbridge(-64).dll the following methods are exported in a def file to C API which in turn call their real implementation, which are instance methods of the class WinAccessBridge:
>
> addJavaEventNotification
> removeJavaEventNotification
> addAccessibilityEventNotification
> removeAccessibilityEventNotification
>
>
> However, they are nowhere to be seen in the actual C interface, in AccessBridgeWindowsEntryPoints.cpp. Your guess is as good as mine as to how on earth MSVC is still capable of compiling and linking this without any errors whatsoever, but in any case, this is a severe oversight and should be properly defined in the C API lest this happy accident within MSVC is fixed by Microsoft in the future
The problem as I see it is that the .def is exporting something that simply does not exist at all, even if it is a non-public API and the symbols are simply exported from the DLL for internal use by other accessbridge code, then these methods should still be placed in the extern "C" block in the .cpp (but maybe not in the corresponding header since they aren't public). Conversely if it is never meant to be exported but the accessbridge DLLs somehow need the .def files to export phantom, nonexistent symbols to work properly, then something is seriously wrong with them and we should probably take a look at what on earth is going on there
-------------
PR Comment: https://git.openjdk.org/jdk/pull/13734#issuecomment-1534192271
More information about the client-libs-dev
mailing list